Function at 0x479888
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x6b0d44]
xor eax, esp
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
push ebx
mov dword [esp + 0x10], eax
mov ebx, ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
push esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x1c]
push edi
mov edi, edx
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
test edi, edi
je 0x479b03
test ecx, ecx
je 0x479b03
push 0xb10
push 0x7647b4
push 1
push pe_nt_image_headers32
call fcn.005ce020
mov esi, eax
add esp, 0x10
mov dword [esp + 0xc], esi
test esi, esi
je 0x479c28
push pe_nt_image_headers32
push 0
push esi
call fcn.0059de40
add esp, 0xc
lea eax, [esi + 0x4b]
push 8
push eax
call fcn.004a39d0
mov eax, dword [ebx + 0x208]
mov dword [esi + 0x88], eax
movsx edx, byte [edi + 6]
mov ebx, dword [esp + 0x24]
push 0xb18
push 0x76482c
movsx ecx, byte [edx + edi + 7]
push 1
lea eax, [ecx + edx]
movsx eax, byte [eax + edi + 8]
add eax, ecx
add eax, edx
movsx eax, byte [eax + edi + 9]
mov dword [esp + 0x44], eax
inc eax
add eax, ebx
push eax
mov dword [esp + 0x44], eax
call fcn.005ce020
add esp, 0x18
mov dword [esi + 0x14], eax
test eax, eax
jne 0x4799a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xb18
push esi
push edi
mov edx, 0x764848
xor ecx, ecx
call fcn.0047145c
add esp, 0xc
push edi
push 0x764864
push 0x764880
jmp 0x479c55
mov edx, dword [esp + 0x2c]
mov ecx, eax
push ebx
push edi
call section..text
mov eax, dword [esp + 0x38]
inc eax
push eax
mov eax, dword [esi + 0x14]
add eax, ebx
push 0
push eax
call fcn.0059de40
mov eax, dword [esi + 0x14]
add esp, 0x14
movzx eax, word [eax]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [esi + 0x18], ax
mov eax, dword [esi + 0x14]
push dword [eax + 2]
call dword [sym.imp.WS2_32.dll_ntohl]
mov edi, dword [esi + 0x14]
mov ebx, eax
mov dword [esi + 0x1c], ebx
shr ebx, 1
movsx ecx, byte [edi + 6]
mov dword [esi + 8], ecx
lea ecx, [edi + 7]
mov dword [esi], ecx
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0xc]
movsx eax, byte [esi + edi + 7]
mov dword [ecx + 0xc], eax
lea eax, [edi + 8]
mov edx, dword [ecx + 0xc]
add eax, esi
mov dword [ecx + 4], eax
lea ecx, [edx + esi]
movsx eax, byte [ecx + edi + 8]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x58], eax
lea eax, [edx + 9]
add eax, esi
add edx, esi
mov esi, ecx
add eax, edi
mov dword [ecx + 0x54], eax
add edx, edi
mov ecx, dword [esi + 0x58]
movsx eax, byte [edx + ecx + 9]
and dword [esi + 0x68], 0
or dword [esi + 0x74], 0xffffffff
mov dword [esi + 0x64], eax
lea eax, [ecx + 0xa]
add eax, edx
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x1c]
add eax, edi
mov edi, dword [esp + 0x24]
mov dword [esi + 0x60], eax
mov eax, ebx
not eax
mov dword [esi + 0x78], edi
and eax, 1
and ebx, 1
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ebx
call fcn.00470e8d
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x80], eax
mov dword [esi + 0x84], edx
test ecx, ecx
je 0x479acb
cmp dword [esp + 0x20], 0
je 0x479acb
mov eax, dword [ebp + 0x18]
mov ebx, dword [esp + 0x18]
add eax, ebx
cmp eax, 0x28
jne 0x479acb
push ebx
push ecx
push 0x2a
lea ecx, [esi + 0x21]
mov byte [esi + 0x20], bl
pop edx
call section..text
mov eax, dword [ebp + 0x18]
lea ecx, [esi + 0x22]
push eax
push dword [esp + 0x2c]
add ecx, ebx
mov byte [ebx + esi + 0x21], al
push 0x29
pop edx
sub edx, ebx
call section..text
add esp, 0x10
lea eax, [esp + 0x10]
mov edx, esi
push 1
push eax
mov ecx, edi
call fcn.00477768
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jns 0x479b17
push 1
push dword [esi + 0x14]
call fcn.005cdee0
push 1
push esi
call fcn.005cdee0
mov edx, dword [esp + 0x38]
add esp, 0x10
and dword [edx], 0
xor eax, eax
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0059b3f0
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x479bf9
xor ecx, ecx
cmp dword [ebx + 0x64], ecx
jne 0x479ba7
cmp dword [ebx + 0x5c], ecx
jne 0x479ba7
mov edx, ecx
mov eax, dword [ebx + 0x14]
add eax, edx
mov dword [esp + 0x18], eax
cmp word [eax], cx
je 0x479b98
cmp dword [esi + 0x64], 0
mov dword [esp + 0xc], ecx
jle 0x479b96
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x10], ecx
xor eax, eax
lea edi, [esp + 0x34]
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [esp + 0x1c]
pop eax
mov word [esp + 0x34], ax
mov ax, word [ecx + 4]
mov word [esp + 0x36], ax
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
xor eax, eax
mov ecx, eax
lea eax, [esp + 0x34]
mov eax, dword [eax + ecx*4]
cmp eax, dword [edi + ecx*4]
jne 0x479bda
inc ecx
cmp ecx, 4
jne 0x479b79
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0xc]
mov byte [ecx + eax], 1
xor ecx, ecx
add edx, 0x1c
cmp edx, 0xe0
jl 0x479b31
mov edi, dword [esp + 0x24]
push 0x2b
pop edx
push edx
lea eax, [ebx + 0x20]
push eax
lea ecx, [esi + 0x20]
call section..text
mov eax, dword [ebx + 0x8c]
mov dword [esi + 0x8c], eax
push 1
push dword [ebx + 0x14]
call fcn.005cdee0
push 1
push ebx
call fcn.005cdee0
add esp, 0x18
jmp 0x479c09
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
inc eax
add ecx, 6
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, dword [esi + 0x64]
jl 0x479b50
jmp 0x479b96
lea eax, [esi + 0x20]
push eax
lea edx, [edi + 0x10c]
call fcn.00477a3f
pop ecx
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.00477c2e
mov edx, dword [esp + 0x14]
mov ecx, edi
mov esi, eax
call fcn.00479792
mov eax, esi
jmp 0x479b05
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xb10
push esi
push edi
mov edx, 0x7647d0
xor ecx, ecx
call fcn.0047145c
add esp, 0xc
push edi
push 0x7647ec
push 0x764808
call fcn.004010b4
add esp, 0xc
push esi
call fcn.005aae60
int3