Function at 0x1003d770
Capabilities:
Check http status code

Disassembly:
sub esp, 0x450
mov eax, dword [0x10080180]
xor eax, esp
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x460]
push ebx
mov ebx, dword [esp + 0x460]
push ebp
push esi
mov esi, dword [esp + 0x464]
push edi
push dword [ebx + 4]
mov edi, dword [esp + 0x468]
push dword [ebx]
mov dword [esp + 0x1c], edi
push str.Writing_STUN_message__class0x_X__method0x_X
push 0x67
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 0
mov dword [esp + 0x38], esi
lea ebp, [esi + edi]
mov dword [esp + 0x34], eax
call fcn.10034290
add esp, 0x18
cmp esi, 0x14
mov esi, dword [sym.imp.WS2_32.dll_htons]
jae 0x1003d7de
or eax, 0xffffffff
jmp 0x1003d819
mov ax, word [ebx]
or ax, word [ebx + 4]
movzx eax, ax
push eax
call esi
push 0
mov word [edi], ax
call esi
push 0x2112a442
mov word [edi + 2], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [edi + 4], eax
movq xmm0, qword [ebx + 8]
movq qword [edi + 8], xmm0
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x10], eax
mov eax, 0x14
mov edx, 8
mov ecx, ebx
add edi, eax
mov dword [esp + 0x18], edi
lea esi, [edx + ecx]
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x24], esi
test edx, edx
je 0x1003d927
cmp edx, 0x12c
ja 0x1003d849
jne case.0x1003d85b.402
mov ecx, str.Try_Alternate
jmp 0x1003d8c2
lea eax, [edx - 0x190]
cmp eax, 0x6c
ja case.0x1003d85b.402
movzx eax, byte [eax + 0x1003e0f0]
jmp dword [eax*4 + 0x1003e0b8]
mov ecx, str.Bad_Request
jmp 0x1003d8c2
mov ecx, str.Unauthenticated
jmp 0x1003d8c2
mov ecx, str.Forbidden
jmp 0x1003d8c2
mov ecx, str.Unknown_Attribute
jmp 0x1003d8c2
mov ecx, str.Allocation_Mismatch
jmp 0x1003d8c2
mov ecx, str.Stale_Nonce
jmp 0x1003d8c2
mov ecx, str.Address_Family_not_Supported
jmp 0x1003d8c2
mov ecx, str.Wrong_credentials
jmp 0x1003d8c2
mov ecx, str.Unsupported_Transport_Protocol
jmp 0x1003d8c2
mov ecx, str.Peer_Address_Family_Mismatch
jmp 0x1003d8c2
mov ecx, str.Allocation_Quota_Reached
jmp 0x1003d8c2
mov ecx, str.Server_Error
jmp 0x1003d8c2
mov ecx, str.Insufficient_Capacity
jmp 0x1003d8c2
mov ecx, str.Error
mov eax, edx
mov dword [esp + 0x58], 0
xor edx, edx
mov esi, 0x64
div esi
lea esi, [esp + 0x5c]
and al, 7
mov byte [esp + 0x5b], dl
mov byte [esp + 0x5a], al
mov edx, ecx
sub esi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx - 1], al
test al, al
jne 0x1003d8e7
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003d8f7
sub ecx, edx
lea eax, [ecx + 4]
push eax
lea eax, [esp + 0x5c]
push eax
mov eax, ebp
push 9
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
mov esi, dword [esp + 0x24]
add edi, eax
cmp dword [ebx + 0xb8], 0
je 0x1003d9a8
push str.Writing_XOR_mapped_address
push 0x7f
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 0
call fcn.10034290
add esp, 0x10
push 0x2112a442
call dword [sym.imp.WS2_32.dll_htonl]
movq xmm0, qword [esi]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x24]
push eax
push dword [ebx + 0xb8]
lea eax, [ebx + 0x38]
movq qword [esp + 0x30], xmm0
push eax
lea eax, [esp + 0x44]
push 0x20
push eax
call fcn.1003e1f0
add esp, 0x14
test eax, eax
jle 0x1003d9a8
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, ebp
push 0x20
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1003d9db
push eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push 4
push eax
mov eax, ebp
push 0x24
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp byte [ebx + 0x30], 0
je 0x1003da28
push 0
push 0x25
push str.Writing_STUN_attribute_type_0x_X__length_zu
push 0x196
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 0
call fcn.10034290
mov eax, ebp
add esp, 0x18
sub eax, edi
cmp eax, 4
jae 0x1003da0c
or eax, 0xffffffff
jmp 0x1003da26
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 0x25
call esi
push 0
mov word [edi], ax
call esi
mov word [edi + 2], ax
mov eax, 4
add edi, eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
or eax, ecx
je 0x1003da74
push ecx
call dword [sym.imp.WS2_32.dll_htonl]
push dword [ebx + 0x20]
mov esi, eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x28], eax
xor ecx, ecx
push 8
lea eax, [esp + 0x28]
or ecx, esi
push eax
mov eax, ebp
mov dword [esp + 0x2c], ecx
push 0x802a
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
or eax, ecx
je 0x1003dac0
push ecx
call dword [sym.imp.WS2_32.dll_htonl]
push dword [ebx + 0x28]
mov esi, eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x28], eax
xor ecx, ecx
push 8
lea eax, [esp + 0x28]
or ecx, esi
push eax
mov eax, ebp
mov dword [esp + 0x2c], ecx
push 0x8029
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
movzx eax, word [ebx + 0xb8c]
mov esi, dword [sym.imp.WS2_32.dll_htons]
test ax, ax
je 0x1003db03
push eax
mov dword [esp + 0x28], 0
call esi
mov word [esp + 0x24], ax
lea eax, [esp + 0x24]
push 4
push eax
mov eax, ebp
push 0xc
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp byte [ebx + 0xb8e], 0
jne 0x1003db15
cmp dword [ebx + 0xb88], 0
je 0x1003db46
push dword [ebx + 0xb88]
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push 4
push eax
mov eax, ebp
push 0xd
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx + 0xa68], 0
je 0x1003dbce
push str.Writing_XOR_peer_address
push 0xba
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 0
call fcn.10034290
add esp, 0x10
push 0x2112a442
call dword [sym.imp.WS2_32.dll_htonl]
movq xmm0, qword [ebx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x24]
push eax
push dword [ebx + 0xa68]
lea eax, [ebx + 0x9e8]
movq qword [esp + 0x30], xmm0
push eax
lea eax, [esp + 0x44]
push 0x20
push eax
call fcn.1003e1f0
add esp, 0x14
test eax, eax
jle 0x1003dbce
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, ebp
push 0x12
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx + 0xaf0], 0
je 0x1003dc56
push str.Writing_XOR_relay_address
push 0xc9
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 0
call fcn.10034290
add esp, 0x10
push 0x2112a442
call dword [sym.imp.WS2_32.dll_htonl]
movq xmm0, qword [ebx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x24]
push eax
push dword [ebx + 0xaf0]
lea eax, [ebx + 0xa70]
movq qword [esp + 0x30], xmm0
push eax
lea eax, [esp + 0x44]
push 0x20
push eax
call fcn.1003e1f0
add esp, 0x14
test eax, eax
jle 0x1003dc56
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, ebp
push 0x16
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
mov eax, dword [ebx + 0xb80]
test eax, eax
je 0x1003dc81
push dword [ebx + 0xb84]
push eax
mov eax, ebp
push 0x13
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp byte [ebx + 0xb8f], 0
je 0x1003dcc3
xor al, al
mov ecx, 0x80
cmp byte [ebx + 0xb90], 0
movzx eax, al
cmovne eax, ecx
mov byte [esp + 0x13], al
lea eax, [esp + 0x13]
push 1
push eax
mov eax, ebp
push 0xc
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp byte [ebx + 0xb92], 0
je 0x1003dcfa
push 4
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
mov eax, ebp
mov byte [esp + 0x2c], 0x11
push 0x19
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp byte [ebx + 0xb91], 0
je 0x1003dd44
push 0
push 0x1a
push str.Writing_STUN_attribute_type_0x_X__length_zu
push 0x196
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 0
call fcn.10034290
mov eax, ebp
add esp, 0x18
sub eax, edi
cmp eax, 4
jae 0x1003dd2e
or eax, 0xffffffff
jmp 0x1003dd42
push 0x1a
call esi
push 0
mov word [edi], ax
call esi
mov word [edi + 2], ax
mov eax, 4
add edi, eax
mov eax, dword [ebx + 0xb98]
mov ecx, dword [ebx + 0xb9c]
or eax, ecx
je 0x1003dd96
push ecx
call dword [sym.imp.WS2_32.dll_htonl]
push dword [ebx + 0xb98]
mov esi, eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x28], eax
xor ecx, ecx
push 8
lea eax, [esp + 0x28]
or ecx, esi
push eax
mov eax, ebp
mov dword [esp + 0x2c], ecx
push 0x22
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
push 8
push 0x10052648
mov eax, ebp
push 0x8022
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx], 0
jne 0x1003de15
cmp byte [ebx + 0x8da], 0
je 0x1003ddd5
push 0x20
lea eax, [ebx + 0x8ba]
push eax
push 0x1e
jmp 0x1003ddfd
cmp byte [ebx + 0xc0], 0
lea edx, [ebx + 0xc0]
je 0x1003de15
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003ddf0
sub ecx, esi
push ecx
push edx
push 6
mov eax, ebp
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
mov eax, dword [ebx]
test eax, eax
je 0x1003de3b
cmp eax, 0x110
jne 0x1003df56
mov eax, dword [ebx + 0x14]
cmp eax, 0x191
je 0x1003de3b
cmp eax, 0x1b6
jne 0x1003df56
cmp byte [ebx + 0x2c2], 0
lea edx, [ebx + 0x2c2]
je 0x1003de75
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003de50
sub ecx, esi
mov eax, ebp
push ecx
push edx
push 0x14
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp byte [ebx + 0x5be], 0
lea edx, [ebx + 0x5be]
je 0x1003df56
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003de90
sub ecx, esi
mov eax, ebp
push ecx
push edx
push 0x15
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx + 0x8dc], 0
jle 0x1003dee0
push dword [ebx + 0x9e0]
lea eax, [ebx + 0x8e0]
push eax
mov eax, ebp
push 0x8002
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
jmp 0x1003df0e
cmp dword [ebx], 0
je 0x1003df1d
lea eax, [esp + 0x35c]
push eax
call fcn.1003bf80
push eax
lea eax, [esp + 0x364]
push eax
mov eax, ebp
push 0x8002
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x18
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx], 0
jne 0x1003df56
mov eax, dword [ebx + 0x8dc]
test eax, eax
je 0x1003df56
mov esi, dword [sym.imp.WS2_32.dll_htons]
push eax
call esi
mov word [esp + 0x24], ax
lea eax, [esp + 0x24]
push 4
push eax
mov eax, ebp
push 0x1d
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx], 0x10
je 0x1003e019
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1003e019
lea ecx, [esp + 0x58]
push ecx
push eax
push ebx
call fcn.1003be60
mov ecx, edi
mov esi, eax
sub ecx, dword [esp + 0x24]
add ecx, 0x18
push ecx
push dword [esp + 0x24]
call fcn.1003d740
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x38]
push eax
push esi
lea eax, [esp + 0x74]
push eax
mov eax, edi
sub eax, ecx
push eax
push ecx
call fcn.1003fa40
push 0x14
lea eax, [esp + 0x50]
push eax
mov eax, ebp
push 8
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x3c
test eax, eax
je 0x1003e07d
add edi, eax
cmp dword [ebx + 0x8dc], 0
mov ebx, dword [esp + 0x14]
je 0x1003e01d
mov eax, edi
sub eax, dword [esp + 0x18]
add eax, 0x24
push eax
push ebx
call fcn.1003d740
lea eax, [esp + 0x40]
push eax
push esi
lea eax, [esp + 0x68]
push eax
mov eax, edi
sub eax, ebx
push eax
push ebx
call fcn.1003fac0
push 0x20
lea eax, [esp + 0x58]
push eax
mov eax, ebp
push 0x1c
sub eax, edi
push eax
push edi
call fcn.1003e160
add esp, 0x30
test eax, eax
je 0x1003e07d
add edi, eax
jmp 0x1003e01d
mov ebx, dword [esp + 0x14]
mov eax, edi
sub eax, dword [esp + 0x18]
add eax, 8
push eax
test al, 3
je 0x1003e037
push str.Written_STUN_message_length_is_not_multiple_of_4__length_zu
push 0x16c
jmp 0x1003e08b
push ebx
call fcn.1003d740
mov eax, edi
sub eax, ebx
push eax
push ebx
call fcn.10044770
add esp, 0x10
xor eax, 0x5354554e
push eax
call dword [sym.imp.WS2_32.dll_htonl]
push 4
mov dword [esp + 0x20], eax
sub ebp, edi
lea eax, [esp + 0x20]
push eax
push 0x8028
push ebp
push edi
call fcn.1003e160
add esp, 0x14
test eax, eax
je 0x1003e07d
sub eax, ebx
add eax, edi
jmp 0x1003e09d
push dword [esp + 0x20]
push str.Not_enough_space_in_buffer_for_STUN_message__size_zu
push 0x17a
push str.C:UsersJesse_source_reposSNPJuiceout_buildx86_release_depsjuice_src_src_stun.c
push 4
call fcn.10034290
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0x45c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10044f75
add esp, 0x450
ret