Function at 0x480280
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x78
mov eax, dword [0x698b9c]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x7c]
push ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x98]
push ebp
mov ebp, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], ecx
xor ecx, ecx
push esi
mov esi, dword [ebx]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x94]
push edi
mov dword [esp + 0x54], edx
mov byte [esp + 0x13], cl
mov dword [esp + 0x44], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x50], ecx
cmp ebp, ecx
je 0x480e82
movzx edx, word [eax + 2]
mov ecx, dword [esp + 0x90]
lea edi, [eax + 4]
add ecx, 4
push edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], ecx
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [esp + 0x48], eax
cmp eax, 0xa8
jb 0x480e82
mov cx, word [edi + 0x58]
mov eax, dword [esp + 0x34]
cmp cx, word [eax]
jne 0x480e82
mov dx, word [edi + 0x5a]
cmp dx, word [eax + 2]
jne 0x480e82
mov ecx, dword [edi + 0x28]
cmp ecx, dword [eax + 4]
jne 0x480e82
cmp dword [edi + 0x3c], 4
jne 0x480384
mov edx, dword [esp + 0x3c]
cmp word [edx], 0x7b
jne 0x480384
mov eax, edx
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 4]
add eax, 4
push eax
mov eax, dword [esp + 0x18]
push 4
add edx, 0x2c
push edx
push eax
mov dword [edi + 0x2c], ecx
call fcn.004659b0
add esp, 0x10
cmp dword [edi + 0x50], 4
jne 0x4803b7
mov ecx, dword [esp + 0x38]
cmp word [ecx], 0x7b
jne 0x4803b7
mov eax, ecx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x14]
add eax, 4
push eax
mov eax, dword [esp + 0x1c]
push 4
add eax, 0x40
push eax
push ecx
mov dword [edi + 0x40], edx
call fcn.004659b0
add esp, 0x10
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x90]
lea ecx, [edx + eax - 0x14]
mov edx, dword [esp + 0x14]
push 1
push ecx
push edx
call fcn.00465d10
add esp, 0xc
mov dword [esp + 0x4c], eax
test eax, eax
je 0x480e82
test esi, esi
je 0x480402
push 1
lea eax, [esi + 0x460]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
lea ecx, [esi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp]
lea eax, [edi + 0x268]
push eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
je 0x48043a
lea edx, [esi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0xffffffffffffffff
add esi, 0x460
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
test dword [edi + 0xd0], 0x30000000
je 0x48046f
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x4c]
call fcn.004653c0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret
mov edi, dword [ebp]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x10]
add edi, 0xd8
cmp edx, dword [edi]
mov dword [esp + 0x24], edi
jge 0x480498
mov al, byte [edi + 0x12a]
cmp byte [edi + 0x129], al
movsx eax, al
jne 0x48049f
movsx eax, byte [edi + 0x129]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push 0
push ecx
push edx
shl eax, 5
push 0x20
push 1
lea ecx, [esp + 0x70]
lea edx, [eax + edi + 4]
call fcn.00496f60
mov ecx, dword [esp + 0x30]
add esp, 0x14
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x4c]
mov edx, 0x14
lea ecx, [esp + 0x70]
mov dword [esp + 0x18], edx
xor eax, eax
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x4804fc
mov ecx, dword [esi + 0xc]
cmp eax, ecx
jl 0x4804fc
mov esi, dword [esi]
sub eax, ecx
test esi, esi
jne 0x4804e4
jmp 0x480451
test esi, esi
je 0x480451
mov ecx, dword [esi + 0xc]
sub ecx, eax
cmp ecx, edx
jl 0x4806fb
mov esi, dword [esi + 8]
add esi, eax
test esi, esi
je 0x480451
lea eax, [esp + 0x5c]
mov ecx, eax
mov dword [esp + 0x18], 0x14
mov dword [esp + 0x1c], 0
sub esi, ecx
movzx edx, byte [esi + eax]
movzx ecx, byte [eax]
xor edx, ecx
or dword [esp + 0x1c], edx
inc eax
sub dword [esp + 0x18], 1
jne 0x480536
cmp dword [esp + 0x1c], 0
je 0x4805bc
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x10]
cmp eax, dword [edi]
jne 0x4805c1
mov cl, byte [edi + 0x12a]
cmp byte [edi + 0x129], cl
je 0x4805c1
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x14]
push 0
add eax, 4
push eax
movsx eax, cl
push edx
shl eax, 5
push 0x20
lea edx, [eax + edi + 4]
push 1
lea ecx, [esp + 0x70]
call fcn.00496f60
add esp, 0x14
mov dword [esp + 0x1c], 0x14
lea eax, [esp + 0x5c]
xor ecx, ecx
movzx edx, byte [esi + eax]
movzx edi, byte [eax]
xor edx, edi
or ecx, edx
inc eax
sub dword [esp + 0x1c], 1
jne 0x4805a5
test ecx, ecx
jne 0x4805c1
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
je 0x4805d7
lea ebx, [ebx]
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x4805d0
cmp byte [esp + 0x13], 0
mov ecx, dword [esp + 0x4c]
mov dword [eax], ecx
je 0x480e82
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x18], 0x36ee80
ja 0x480e82
mov edi, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
test edi, edi
jl 0x480e82
cmp eax, 0xf423f
ja 0x480e82
lea esi, [esp + 0x1c]
call fcn.00464e60
mov esi, dword [esp + 0x1c]
cmp esi, edi
jl 0x480e82
cmp esi, edi
mov edi, dword [esp + 0x20]
jne 0x480641
cmp edi, dword [esp + 0x28]
jl 0x480e82
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x18]
call fcn.004740d0
add eax, dword [esp + 0x24]
cmp esi, eax
mov dword [esp + 0x1c], eax
jg 0x480dee
cmp esi, eax
jne 0x48066b
cmp edi, dword [esp + 0x28]
jg 0x480dee
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp dword [ecx + 0x3c], 4
jne 0x480e84
cmp dword [ebx], 0
mov edx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x2c]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov eax, 0x7b
mov word [esp + 0x24], ax
mov ax, word [edx]
mov word [esp + 0x26], ax
mov dword [esp + 0x28], ecx
jne 0x480792
push 0
push edi
lea edx, [esp + 0x2c]
push esi
push edx
mov eax, ebp
call fcn.00466af0
add esp, 0x10
mov dword [ebx], eax
test eax, eax
jne 0x48074e
mov eax, dword [esp + 0x58]
cmp eax, dword [ebp]
je 0x480792
mov eax, dword [0x69f864]
test eax, eax
je 0x480792
push str.Bad_problem_find_ep_got_a_diff_inp_then_special_locate__n
call eax
add esp, 4
jmp 0x480792
mov edx, dword [esp + 0x18]
test edx, edx
jle 0x480732
mov edi, dword [esi + 0xc]
sub edi, eax
cmp edi, edx
jl 0x48070c
mov edi, dword [esp + 0x18]
mov edx, dword [esi + 8]
add edx, eax
mov eax, dword [esp + 0x1c]
push edi
push edx
push eax
call fcn.005bfdd0
mov esi, dword [esi]
sub dword [esp + 0x24], edi
add dword [esp + 0x28], edi
add esp, 0xc
xor eax, eax
test esi, esi
jne 0x4806f7
jmp 0x480736
test esi, esi
jne 0x480741
cmp dword [esp + 0x18], 0
jg 0x480451
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x70]
jmp 0x48051e
mov ecx, dword [esp + 0x54]
cmp dword [ecx], 0
jne 0x480792
mov edx, ecx
mov dword [edx], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push 1
add ecx, 0x2b0
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x58]
cmp eax, ecx
je 0x480792
mov edx, dword [0x69f864]
test edx, edx
je 0x480792
push ecx
push eax
push str.Huh__ep:_p_diff_then_l_inp:_p__n
call edx
add esp, 0xc
mov ecx, dword [esp + 0x48]
mov eax, dword [ebx]
sub ecx, 0x14
test eax, eax
jne 0x4807f0
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push edx
push eax
lea edx, [esp + 0x50]
push edx
mov edx, dword [ebp]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x48]
push esi
push edx
mov edx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
mov edx, dword [esp + 0x5c]
push eax
mov ecx, edi
call fcn.0047fd60
add esp, 0x30
mov dword [ebx], eax
jmp 0x480856
mov edx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0xb0]
push edx
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x48]
push esi
push eax
mov eax, dword [ebp]
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x40]
push edi
push eax
push ecx
push edx
mov dword [esp + 0x68], 1
call fcn.0047eb10
add esp, 0x3c
mov dword [ebx], eax
test eax, eax
jne 0x48085f
mov eax, dword [esp + 0x54]
mov dword [eax], 0
cmp dword [ebx], 0
je 0x480e82
mov eax, dword [ebx]
lea esi, [esp + 0x24]
call fcn.00469520
mov edi, eax
mov dword [esp + 0x48], eax
test edi, edi
jne 0x48089f
push 0x64
push eax
push eax
mov eax, dword [ebx]
mov ecx, esi
push ecx
push eax
call fcn.00469570
add esp, 0x14
test eax, eax
jne 0x480e82
mov eax, dword [ebx]
call fcn.00469520
mov edi, eax
mov dword [esp + 0x48], edi
test edi, edi
je 0x4808d3
movzx eax, word [edi + 0x1a4]
test eax, 0x200
je 0x4808d3
and eax, 0xfdff
mov word [edi + 0x1a4], ax
mov edx, dword [ebx]
push edx
mov eax, edi
xor ecx, ecx
call fcn.0046d7b0
mov esi, 1
add esp, 4
mov dword [esp + 0x50], esi
jmp 0x4808d7
mov esi, dword [esp + 0x50]
mov eax, dword [ebx]
push eax
call fcn.0047dc00
mov eax, dword [ebp]
mov ecx, dword [eax + 0xd0]
add esp, 4
test cl, 2
je 0x480d59
cmp dword [esp + 0x2c], 0
je 0x480907
test ecx, 0x200000
jne 0x480d59
cmp dword [esp + 0x44], 0xa
jne 0x480988
mov ecx, dword [ebx]
push ecx
push 0xa
xor edx, edx
xor ecx, ecx
call fcn.00478720
add esp, 8
test esi, esi
je 0x480971
mov ebx, dword [ebx]
mov eax, dword [ebx + 0x30]
mov ebp, dword [ebx + 4]
test eax, 0x100
jne 0x480971
and eax, 0x7f
cmp eax, 2
je 0x480971
cmp eax, 4
je 0x480971
lea esi, [ebp + 0x298]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [ebp + 0xd0], 0x70000000
jne 0x48096a
push 0
add edi, 0x74
push edi
push 6
mov eax, ebx
call fcn.00477630
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret
mov edx, dword [ebx]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov esi, dword [eax + 0xc4]
push 1
add edx, 0x460
push edx
call edi
mov eax, dword [ebx]
add eax, 0x57c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call fcn.00461000
mov ecx, dword [ebx]
add esp, 4
add ecx, 0x57c
mov esi, eax
push ecx
mov dword [esp + 0x44], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebx]
push 0xffffffffffffffff
add edx, 0x460
push edx
call edi
test esi, esi
jne 0x480a65
push 0x6650ae
push 4
call fcn.0047a3c0
mov ecx, dword [esp + 0x1c]
mov esi, eax
lea eax, [esp + 0x34]
push eax
push ecx
mov dword [esp + 0x3c], 0
call fcn.00479870
add esp, 0x10
test eax, eax
je 0x480a1b
test esi, esi
je 0x480a3a
mov eax, esi
call fcn.004653c0
jmp 0x480a3a
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
push esi
push 6
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
call fcn.0048f510
add esp, 0x18
mov eax, dword [ebx]
mov ecx, dword [ebp]
push 0x10000017
push 0
push eax
push ecx
call fcn.0046a4e0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret
mov esi, dword [esp + 0x40]
mov edi, dword [esi + 0x10]
lea eax, [edi + 0x2b0]
push 1
push eax
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov edx, dword [ebp]
mov eax, dword [edx + 0xd0]
and eax, 0x86e00016
or eax, 0xe00012
mov dword [edi + 0xd0], eax
mov eax, dword [ebp]
mov ecx, dword [eax + 0xc8]
mov dword [edi + 0xc8], ecx
mov edx, dword [eax + 0xcc]
mov dword [edi + 0xcc], edx
mov eax, dword [ebp]
mov ecx, dword [eax + 0xd4]
mov dword [edi + 0xd4], ecx
mov dword [edi + 0xc4], esi
mov edx, dword [ebp]
mov eax, dword [edx + 0x214]
mov dword [edi + 0x214], eax
mov ecx, dword [ebp]
mov edx, dword [ecx + 0x220]
mov dword [edi + 0x220], edx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x228]
mov dword [edi + 0x228], ecx
mov edx, dword [ebp]
movzx eax, byte [edx + 0x22c]
mov byte [edi + 0x22c], al
mov ecx, dword [ebp]
movzx edx, byte [ecx + 0x22d]
mov byte [edi + 0x22d], dl
mov eax, dword [ebp]
movzx ecx, byte [eax + 0x22e]
mov byte [edi + 0x22e], cl
mov edx, dword [ebp]
movzx eax, byte [edx + 0x230]
mov byte [edi + 0x230], al
mov ecx, dword [ebp]
movzx edx, byte [ecx + 0x231]
mov byte [edi + 0x231], dl
mov eax, dword [ebp]
movzx ecx, byte [eax + 0x232]
mov byte [edi + 0x232], cl
mov edx, dword [ebp]
movzx eax, byte [edx + 0x233]
mov byte [edi + 0x233], al
mov ecx, dword [ebp]
mov edx, dword [ecx + 0x218]
mov dword [edi + 0x218], edx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x21c]
mov dword [edi + 0x21c], ecx
mov edx, dword [ebp]
movzx eax, byte [edx + 0x224]
mov byte [edi + 0x224], al
mov ecx, dword [ebp]
mov dx, word [ecx + 0x2b8]
mov word [edi + 0x2b8], dx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x2d8]
mov dword [edi + 0x2d8], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 0x2dc]
mov dword [edi + 0x2dc], eax
mov ecx, dword [ebp]
mov edx, dword [ecx + 0x2e4]
mov dword [edi + 0x2e4], edx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x2e0]
mov eax, dword [edi + 0x168]
mov dword [edi + 0x2e0], ecx
test eax, eax
je 0x480bf3
push eax
call fcn.005c05f8
add esp, 4
mov edx, dword [ebp]
mov esi, dword [edx + 0x168]
call fcn.00496b50
mov dword [edi + 0x168], eax
mov eax, dword [edi + 0x164]
test eax, eax
je 0x480c1a
push eax
call fcn.005c05f8
add esp, 4
mov eax, dword [ebp]
mov eax, dword [eax + 0x164]
call fcn.004964d0
mov dword [edi + 0x164], eax
mov eax, dword [ebx]
test eax, eax
je 0x480c3b
or dword [eax + 0x30], 0x1000
mov ecx, dword [ebx]
mov edx, dword [ebp]
push ecx
push edi
push edx
call fcn.00467ae0
mov eax, dword [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
add esp, 0xc
push 1
add eax, 0x460
push eax
call esi
mov ecx, dword [ebx]
add ecx, 0x57c
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [ebx]
mov eax, dword [ebp]
push edx
push edi
push eax
call fcn.00479920
mov ecx, dword [ebx]
add esp, 0xc
add ecx, 0x57c
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebx]
push 0xffffffffffffffff
add edx, 0x460
push edx
call esi
test dword [edi + 0xd0], 0x10000000
push 0xffffffffffffffff
je 0x480cc2
mov eax, dword [esp + 0x30]
push eax
call esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret
mov ecx, dword [esp + 0x30]
push ecx
call esi
mov eax, dword [esp + 0x44]
mov dword [ebp], edi
mov edx, dword [ebx]
push edx
push eax
xor edx, edx
xor ecx, ecx
call fcn.00478720
add esp, 8
cmp dword [esp + 0x50], 0
je 0x480d39
mov ebx, dword [ebx]
mov eax, dword [ebx + 0x30]
mov edi, dword [ebx + 4]
test eax, 0x100
jne 0x480d39
and eax, 0x7f
cmp eax, 2
je 0x480d39
cmp eax, 4
je 0x480d39
lea esi, [edi + 0x298]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [edi + 0xd0], 0x70000000
jne 0x480d32
mov ecx, dword [esp + 0x48]
push 0
add ecx, 0x74
push ecx
push 6
mov eax, ebx
call fcn.00477630
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x40]
call fcn.00460da0
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret
mov eax, dword [esp + 0x44]
test eax, eax
je 0x480d71
mov edx, dword [ebx]
push edx
push eax
xor edx, edx
xor ecx, ecx
call fcn.00478720
add esp, 8
test esi, esi
je 0x480971
mov ebx, dword [ebx]
mov eax, dword [ebx + 0x30]
mov ebp, dword [ebx + 4]
test eax, 0x100
jne 0x480971
and eax, 0x7f
cmp eax, 2
je 0x480971
cmp eax, 4
je 0x480971
lea esi, [ebp + 0x298]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [ebp + 0xd0], 0x70000000
jne 0x48096a
push 0
add edi, 0x74
push edi
push 6
mov eax, ebx
call fcn.00477630
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret
push 1
push 0
push 1
push 8
call fcn.00464fc0
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x480e82
mov ebx, dword [ebp + 8]
push 3
mov dword [ebp + 0xc], 8
call sub.WS2_32.dll_htons
push 8
mov word [ebx], ax
call sub.WS2_32.dll_htons
sub esi, dword [esp + 0x1c]
sub edi, dword [esp + 0x28]
mov word [ebx + 2], ax
jns 0x480e34
dec esi
add edi, 0xf4240
cmp esi, 0x10c6
jbe 0x480e41
or esi, 0xffffffff
jmp 0x480e47
imul esi, esi, 0xf4240
or eax, 0xffffffff
sub eax, esi
cmp eax, edi
jb 0x480e54
add esi, edi
jmp 0x480e57
or esi, 0xffffffff
push esi
call sub.WS2_32.dll_htonl
mov ecx, dword [esp + 0x30]
push ebp
mov dword [ebx + 4], eax
mov edx, dword [ecx + 0x24]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
push 9
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
call fcn.0048f510
add esp, 0x18
xor eax, eax
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005bfcb8
add esp, 0x78
ret