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

Disassembly:
push esi
push ebx
sub esp, 0x14
mov ebx, dword [esp + 0x20]
mov dword [esp], ebx
call fcn.00475f80
test eax, eax
mov esi, eax
jne 0x476127
mov ebx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x4c]
add eax, eax
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x44]
lea edx, [ecx + 0x7fffffff]
lea ecx, [edx + edx]
mov word [eax + edx*2], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x84]
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x74], 0
lea edx, [eax + eax*2]
shl edx, 2
lea eax, [edx + 0x4bf520]
movzx ecx, word [edx + 0x4bf522]
movzx edx, word [edx + 0x4bf520]
mov dword [ebx + 0x16b4], 0
mov dword [ebx + 0x78], 2
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x8c], edx
movzx edx, word [eax + 4]
movzx eax, word [eax + 6]
mov dword [ebx + 0x60], 2
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x90], edx
mov dword [ebx + 0x7c], eax
mov dword [ebx + 0x48], 0
add esp, 0x14
mov eax, esi
pop ebx
pop esi
ret
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x477870
cmp byte [eax], 0x31
jne 0x477870
cmp edx, 0x38
jne 0x477870
test esi, esi
je 0x477880
mov eax, dword [esi + 0x20]
mov dword [esi + 0x18], 0
test eax, eax
je 0x4778a0
mov ebx, dword [esi + 0x24]
test ebx, ebx
je 0x477890
cmp edi, 0xffffffff
mov eax, 6
cmove edi, eax
test ebp, ebp
js 0x477860
cmp ebp, 0xf
mov edx, 1
jg 0x477854
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
sub eax, 1
cmp eax, 8
ja 0x477880
cmp ecx, 8
jne 0x477880
lea eax, [ebp - 8]
cmp eax, 7
ja 0x477880
cmp edi, 9
ja 0x477880
cmp dword [esp + 0x18], 4
ja 0x477880
mov ecx, dword [esi + 0x28]
cmp ebp, 8
mov eax, 9
cmove ebp, eax
mov eax, dword [esi + 0x20]
mov dword [esp + 8], 0x16c4
mov dword [esp + 4], 1
mov dword [esp], ecx
call eax
test eax, eax
mov ebx, eax
je 0x4778d1
mov edx, dword [esp + 0x1c]
mov ecx, ebp
mov dword [esi + 0x1c], eax
mov dword [eax + 0x30], ebp
mov dword [eax], esi
mov dword [eax + 0x18], edx
mov edx, 1
shl edx, cl
mov dword [eax + 0x1c], 0
lea eax, [edx - 1]
mov ebp, edx
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x2c], edx
mov edx, 1
lea ecx, [eax + 7]
add eax, 9
shl edx, cl
mov dword [ebx + 0x50], ecx
mov ecx, edx
mov dword [ebx + 0x4c], edx
mov edx, 0xaaaaaaab
sub ecx, 1
mul edx
mov eax, dword [esi + 0x20]
mov dword [ebx + 0x54], ecx
shr edx, 1
mov dword [ebx + 0x58], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 8], 2
mov dword [esp + 4], ebp
mov dword [esp], edx
call eax
mov ecx, dword [ebx + 0x2c]
mov edx, dword [esi + 0x28]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], 2
call eax
mov ecx, dword [ebx + 0x4c]
mov edx, dword [esi + 0x28]
mov dword [ebx + 0x40], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], 2
call eax
mov edx, dword [esi + 0x28]
mov dword [ebx + 0x16c0], 0
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x14]
lea ecx, [eax + 6]
mov eax, 1
shl eax, cl
mov dword [ebx + 0x169c], eax
mov ecx, eax
mov eax, dword [esi + 0x20]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], 4
call eax
mov edx, dword [ebx + 0x169c]
lea ecx, [edx*4]
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebx + 0x38]
mov dword [ebx + 8], eax
test ecx, ecx
je 0x4778b3
mov ebp, dword [ebx + 0x40]
test ebp, ebp
je 0x4778b3
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x4778b3
test eax, eax
je 0x4778b3
mov ecx, edx
and ecx, 0xfffffffe
lea edx, [edx + edx*2]
add ecx, eax
add eax, edx
mov dword [ebx + 0x1698], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x16a4], ecx
mov dword [ebx + 0x84], edi
mov byte [ebx + 0x24], 8
mov dword [ebx + 0x88], eax
mov dword [esp + 0x40], esi
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
jmp 0x476060
sub ebp, 0x10
mov dl, 2
jmp 0x47768f
neg ebp
xor edx, edx
jmp 0x47768f
mov eax, 0xfffffffa
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x2c
mov eax, 0xfffffffe
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi + 0x24], 0x47c1b0
jmp 0x47766e
mov dword [esi + 0x20], 0x47c190
mov dword [esi + 0x28], 0
jmp 0x477663
mov eax, dword [str.insufficient_memory]
mov dword [ebx + 4], 0x29a
mov dword [esi + 0x18], eax
mov dword [esp], esi
call fcn.00477500
mov eax, 0xfffffffc
jmp 0x477875
mov eax, 0xfffffffc
jmp 0x477875