Function at 0x479110
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [0x5b706c]
xor eax, esp
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x90]
push ebx
push esi
mov dword [esp + 0xc], eax
mov esi, edx
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x50]
mov dword [esp + 0x58], ecx
mov ecx, eax
push edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x9c], 0
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], 1
call fcn.00478790
test eax, eax
jne 0x479194
mov eax, 0xfffffff4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x38]
xor ebx, ebx
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], edi
call fcn.00478700
test eax, eax
jns 0x479268
mov eax, dword [esp + 0x44]
test eax, eax
je 0x479238
xor edx, edx
mov ecx, eax
call fcn.004781d0
mov esi, eax
test esi, esi
jne 0x47937a
mov esi, dword [esp + 0x48]
test esi, esi
je 0x479251
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00477fd0
mov esi, eax
test esi, esi
jne 0x47937a
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
call fcn.00477fd0
mov esi, eax
test esi, esi
jne 0x479349
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x78]
call fcn.00477fd0
mov esi, eax
test esi, esi
jne 0x479349
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x78], 1
mov dword [esp + 0x6c], 1
mov edx, dword [eax + 4]
add edx, 2
call fcn.00477eb0
mov esi, eax
test esi, esi
jne 0x479345
xor edx, edx
lea ecx, [esp + 0x1c]
call fcn.004781d0
mov esi, eax
test esi, esi
jne 0x479345
lea edx, [eax + 2]
lea ecx, [esp + 0x84]
call fcn.00477eb0
mov esi, eax
test esi, esi
jne 0x479345
lea edx, [eax + 3]
lea ecx, [esp + 0x28]
call fcn.00477eb0
mov esi, eax
test esi, esi
jne 0x479341
lea ecx, [esp + 0x78]
call fcn.00478300
and eax, 0x1f
cmp eax, 0x1f
jae 0x4794ce
mov ebx, 0x1f
lea ecx, [esp + 0x6c]
sub ebx, eax
mov edx, ebx
mov dword [esp + 0x4c], ebx
call fcn.00478530
mov esi, eax
test esi, esi
jne 0x479341
mov edx, ebx
lea ecx, [esp + 0x78]
call fcn.00478530
mov esi, eax
test esi, esi
je 0x4794d2
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x47937a
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x47936e
nop dword [eax]
mov dword [eax], 0
lea eax, [eax + 4]
sub ecx, 1
jne 0x479360
push dword [esp + 0x74]
call fcn.00529d29
add esp, 4
mov eax, dword [esp + 0x80]
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
test eax, eax
je 0x4793cd
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x4793be
nop word [eax + eax]
mov dword [eax], 0
lea eax, [eax + 4]
sub ecx, 1
jne 0x4793b0
push dword [esp + 0x80]
call fcn.00529d29
add esp, 4
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
test ebx, ebx
je 0x479417
mov eax, dword [esp + 0x20]
mov ecx, ebx
test eax, eax
je 0x47940e
nop word [eax + eax]
mov dword [ecx], 0
lea ecx, [ecx + 4]
sub eax, 1
jne 0x479400
push ebx
call fcn.00529d29
add esp, 4
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
test eax, eax
je 0x47946d
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x47945e
nop word [eax + eax]
mov dword [eax], 0
lea eax, [eax + 4]
sub ecx, 1
jne 0x479450
push dword [esp + 0x8c]
call fcn.00529d29
add esp, 4
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
test edi, edi
je 0x4794b7
mov eax, dword [esp + 0x2c]
mov ecx, edi
test eax, eax
je 0x4794ae
nop dword [eax]
mov dword [ecx], 0
lea ecx, [ecx + 4]
sub eax, 1
jne 0x4794a0
push edi
call fcn.00529d29
add esp, 4
mov ecx, dword [esp + 0xa4]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0051e9d8
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
dec ecx
dec eax
mov dword [esp + 0x14], ecx
mov edi, ecx
mov dword [esp + 0x34], eax
sub edi, eax
lea ecx, [esp + 0x78]
mov ebx, edi
shl ebx, 5
mov edx, ebx
call fcn.00478530
mov esi, eax
test esi, esi
jne 0x479341
lea edx, [esp + 0x78]
lea ecx, [esp + 0x6c]
call fcn.00478790
test eax, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
js 0x479555
nop dword [eax + eax]
inc dword [eax + edi*4]
lea edx, [esp + 0x6c]
lea eax, [esp + 0x78]
mov ecx, edx
push eax
call fcn.00478b90
mov esi, eax
add esp, 4
test esi, esi
jne 0x47983b
lea edx, [esp + 0x78]
lea ecx, [esp + 0x6c]
call fcn.00478790
test eax, eax
mov eax, dword [esp + 0xc]
jns 0x479520
mov edx, ebx
lea ecx, [esp + 0x78]
call fcn.00478610
mov esi, eax
test esi, esi
jne 0x47983b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jbe 0x4797bd
lea edx, [ecx*4]
lea ecx, [ebx - 0x20]
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
sub ecx, 4
lea ebx, [ecx + edi*4]
mov edi, dword [esp + 0x30]
nop word [eax + eax]
lea ecx, [eax*4]
mov eax, dword [esp + 0x80]
add ecx, dword [esp + 0x74]
add eax, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov esi, dword [ecx]
mov edx, dword [eax]
cmp esi, edx
jae 0x4795ee
test edx, edx
je 0x4795ee
cmp esi, edx
jae 0x4795ee
mov ecx, dword [ecx - 4]
xor eax, eax
push 0
push edx
or eax, esi
push eax
push ecx
call fcn.0051f560
test edx, edx
jne 0x4795e6
cmp eax, 0xffffffff
jbe 0x4795f1
mov dword [esp + 0x64], 0
or eax, 0xffffffff
inc eax
mov dword [ebx], eax
dec dword [ebx]
lea ecx, [esp + 0x84]
xor edx, edx
call fcn.004781d0
mov esi, eax
test esi, esi
jne 0x479832
cmp dword [esp + 0x34], 1
jb 0x47961c
mov eax, dword [esp + 0x3c]
mov eax, dword [eax - 4]
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x84]
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], 1
mov dword [ecx], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [ecx + 4], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x98], eax
mov ecx, edx
mov eax, dword [ebx]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x90]
push eax
call fcn.00478ef0
mov esi, eax
add esp, 4
test esi, esi
jne 0x479832
xor edx, edx
lea ecx, [esp + 0x28]
call fcn.004781d0
mov esi, eax
test esi, esi
jne 0x47983b
mov ecx, dword [esp + 0x14]
cmp ecx, 2
jb 0x4796a4
mov eax, dword [esp + 0x74]
mov eax, dword [eax + ecx*4 - 8]
mov edi, dword [esp + 0x30]
mov dword [edi], eax
cmp ecx, 1
jae 0x4796b3
xor eax, eax
jmp 0x4796ba
mov eax, dword [esp + 0x40]
mov eax, dword [eax - 4]
mov dword [edi + 4], eax
lea edx, [esp + 0x28]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x84]
mov eax, dword [eax]
mov dword [edi + 8], eax
call fcn.00478790
test eax, eax
jg 0x4795f4
push dword [ebx]
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x88]
call fcn.004790c0
mov esi, eax
add esp, 4
test esi, esi
jne 0x479832
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x84]
call fcn.00478530
mov esi, eax
test esi, esi
jne 0x479832
lea eax, [esp + 0x84]
lea edx, [esp + 0x6c]
push eax
mov ecx, edx
call fcn.00478b90
mov esi, eax
add esp, 4
test esi, esi
jne 0x479832
xor edx, edx
lea ecx, [esp + 0x6c]
call fcn.00478850
test eax, eax
jns 0x47979c
lea edx, [esp + 0x78]
lea ecx, [esp + 0x84]
call fcn.00477fd0
mov esi, eax
test esi, esi
jne 0x479832
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x84]
call fcn.00478530
mov esi, eax
test esi, esi
jne 0x479832
lea eax, [esp + 0x84]
lea edx, [esp + 0x6c]
push eax
mov ecx, edx
call fcn.00478b20
mov esi, eax
add esp, 4
test esi, esi
jne 0x479832
dec dword [ebx]
mov eax, dword [esp + 0x14]
sub ebx, 4
sub dword [esp + 0x18], 0x20
dec eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x34]
ja 0x4795a0
jmp 0x4797c1
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
test ebx, ebx
je 0x4797e9
lea edx, [esp + 0x1c]
mov ecx, ebx
call fcn.00477fd0
mov esi, eax
test esi, esi
jne 0x479832
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
imul eax, dword [ecx]
mov dword [ebx], eax
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x479832
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x6c]
call fcn.00478610
mov esi, eax
test esi, esi
jne 0x479832
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x6c]
mov ecx, ebx
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
call fcn.00477fd0
mov esi, eax
test esi, esi
jne 0x479832
xor edx, edx
mov ecx, ebx
call fcn.00478850
test eax, eax
jne 0x479832
mov dword [ebx], 1
mov ebx, dword [esp + 0xc]
jmp 0x479349
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0xc]
jmp 0x479349