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

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
push ebx
push ebp
mov ebp, dword [esp + 0x28]
mov ebx, 1
push esi
push edi
push dword [esp + 0x54]
mov edi, dword [esp + 0x38]
lea esi, [eax + eax]
mov eax, dword [esp + 0x54]
mov ecx, ebp
push 1
push edx
push esi
lea eax, [eax + ebp*4]
shl ebx, cl
push eax
push ebx
push edi
mov dword [esp + 0x6c], eax
call fcn.1004b970
add esp, 0x1c
cmp dword [esp + 0x58], 0
jne 0x1004c874
push dword [esp + 0x54]
push 1
push dword [esp + 0x4c]
push esi
push dword [esp + 0x60]
push ebx
push dword [esp + 0x50]
call fcn.1004b970
add esp, 0x1c
cmp dword [esp + 0x58], 0
mov eax, dword [esp + 0x38]
push ebx
push dword [esp + 0x48]
cmovne eax, edi
push eax
push edi
call fcn.1004c040
push dword [esp + 0x64]
push dword [esp + 0x58]
push esi
push ebx
push edi
call fcn.1004bba0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
push ecx
lea eax, [eax + ecx*4]
lea esi, [eax + 4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
mov dword [eax], esi
mov eax, ecx
shl eax, 6
mov dword [esp + 0x80], eax
sub eax, ebp
push eax
push dword [edi]
push esi
call fcn.1004be00
push dword [esp + 0x78]
push esi
call fcn.1004c600
mov ebp, 1
add esp, 0x3c
cmp ebx, ebp
jle 0x1004c930
mov eax, dword [esp + 0x38]
add edi, 4
sub eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov esi, dword [edi - 4]
mov ecx, ebx
push dword [esp + 0x44]
sub ecx, ebp
mov dword [eax + edi], esi
imul ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x5c]
sub eax, ecx
sub eax, dword [esp + 0x34]
push eax
push dword [edi]
push esi
call fcn.1004be00
push dword [esp + 0x54]
push esi
call fcn.1004c600
mov eax, dword [esp + 0x4c]
lea edi, [edi + 4]
inc ebp
add esp, 0x18
cmp ebp, ebx
jl 0x1004c8f1
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 1]
test eax, eax
je 0x1004c945
mov edi, dword [esp + 0x54]
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
lea eax, [ebx - 1]
mov edx, eax
mov dword [esp + 0x10], eax
imul edx, ecx
lea esi, [edx + ebp]
lea ebx, [esi + 1]
mov dword [esp + 0x58], ebx
test ebx, ebx
je 0x1004c975
mov edi, dword [esp + 0x40]
xor eax, eax
mov ecx, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x4c], eax
test eax, eax
js 0x1004cc01
mov eax, dword [esp + 0x54]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
lea eax, [ecx + esi*4]
mov dword [esp + 0x50], eax
lea ecx, [ecx + edx*4]
mov eax, 1
mov dword [esp + 0x34], ecx
mov esi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], esi
nop
mov edx, dword [esp + 0x44]
mov edi, esi
and edi, dword [esp + 0x10]
lea esi, [edx + 1]
lea ebx, [eax + edx]
test esi, esi
je 0x1004c9ff
mov edx, dword [esp + 0x38]
lea eax, [edi*4]
push esi
mov dword [esp + 0x1c], eax
push dword [eax + edx]
push ecx
push ecx
call fcn.10001200
add esp, 0x10
test eax, eax
je 0x1004c9ff
mov ecx, dword [esp + 0x34]
nop dword [eax]
cmp esi, ebx
jge 0x1004ca44
inc dword [ecx + esi*4]
mov eax, dword [ecx + esi*4]
inc esi
test eax, eax
je 0x1004c9f0
xor eax, eax
shl edi, 2
mov ecx, dword [esp + 0x1c]
add ebp, eax
mov eax, dword [esp + 0x4c]
inc eax
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
mov ecx, eax
test eax, eax
js 0x1004cacb
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov edi, dword [edi + edx]
sub edi, dword [esp + 0x54]
nop
mov edx, dword [edi + eax]
cmp edx, dword [eax]
jne 0x1004ca4f
sub eax, 4
sub ecx, 1
jns 0x1004ca30
jmp 0x1004cacb
mov edi, dword [esp + 0x18]
mov eax, 1
jmp 0x1004ca04
jbe 0x1004cacb
mov edi, dword [esp + 0x34]
mov ecx, dword [edi]
lea eax, [ecx - 1]
mov dword [edi], eax
cmp ecx, 1
jae 0x1004ca85
mov esi, 1
mov edx, esi
cmp ebx, esi
jle 0x1004ca87
mov ecx, dword [edi + edx*4]
lea eax, [ecx - 1]
mov dword [edi + edx*4], eax
inc edx
cmp ecx, 1
jae 0x1004ca85
cmp edx, ebx
jl 0x1004ca70
jmp 0x1004ca87
xor esi, esi
mov edx, dword [esp + 0x50]
sub ebp, esi
mov ecx, dword [edx]
lea eax, [ecx - 1]
mov dword [edx], eax
cmp ecx, 1
jae 0x1004cac7
mov ebx, dword [esp + 0x30]
mov edi, 1
mov esi, edi
cmp ebx, edi
jle 0x1004cac9
add edx, 4
nop dword [eax + eax]
mov ecx, dword [edx]
lea edx, [edx + 4]
inc esi
lea eax, [ecx - 1]
mov dword [edx - 4], eax
cmp ecx, 1
jae 0x1004cac7
cmp esi, ebx
jl 0x1004cab0
jmp 0x1004cac9
xor edi, edi
sub ebp, edi
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
dec ebx
mov eax, dword [esp + 0x30]
inc esi
mov ecx, dword [esp + 0x34]
lea edx, [edi*4]
sub dword [esp + 0x50], edx
add eax, edi
sub ecx, edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
test ebx, ebx
jns 0x1004c9b0
cmp ebp, 0xffffffff
jne 0x1004cb6e
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x2c]
sub esi, edi
mov ebp, dword [esp + 0x40]
push 1
push edi
lea ebx, [esi*4]
add ebx, ebp
push ebx
push ebx
call fcn.100430e0
add esp, 0x10
test eax, eax
je 0x1004cb65
push 1
lea eax, [edi + 1]
lea ecx, [ebx - 4]
push eax
push ecx
push ecx
call fcn.10049180
mov ebx, dword [esp + 0x68]
push 1
push 1
lea eax, [ebx*4 - 4]
add eax, ebp
push eax
push eax
call fcn.10049180
add esp, 0x20
jmp 0x1004cc0d
mov ebx, dword [esp + 0x58]
jmp 0x1004cc0d
mov ebx, dword [esp + 0x58]
cmp ebp, 1
jne 0x1004cc01
mov edi, dword [esp + 0x2c]
lea esi, [edi + edi]
cmp ebx, esi
jl 0x1004cbd1
mov ecx, dword [esp + 0x40]
mov eax, ebx
sub eax, esi
lea ebx, [ecx + eax*4]
mov eax, dword [ebx]
add eax, ebp
mov dword [ebx], eax
cmp eax, ebp
jae 0x1004cbcb
mov ebp, 1
mov edx, ebp
cmp esi, ebp
jle 0x1004cbc7
lea eax, [ebx + 4]
nop dword [eax]
mov ecx, dword [eax]
lea eax, [eax + 4]
inc ecx
inc edx
mov dword [eax - 4], ecx
cmp ecx, 1
jae 0x1004cbc5
cmp edx, esi
jl 0x1004cbb0
jmp 0x1004cbc7
xor ebp, ebp
test ebp, ebp
jne 0x1004cb91
mov ebx, dword [esp + 0x58]
jmp 0x1004cc05
mov ebp, dword [esp + 0x40]
mov esi, ebx
sub esi, edi
lea edx, [esi*4]
add edx, ebp
mov ecx, dword [edx]
lea eax, [ecx - 1]
mov dword [edx], eax
cmp ecx, 1
jae 0x1004cc0d
nop
mov ecx, dword [edx + 4]
lea edx, [edx + 4]
lea eax, [ecx - 1]
mov dword [edx], eax
test ecx, ecx
je 0x1004cbf0
jmp 0x1004cc0d
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov esi, ebx
sub esi, edi
lea eax, [edi + edi]
sub ebx, eax
mov dword [esp + 0x58], ebx
test ebx, ebx
jle 0x1004cc56
push ebx
mov ebx, dword [esp + 0x2c]
lea eax, [edi*8]
add eax, ebp
mov esi, edi
push eax
push ebp
push ebx
call fcn.10001200
mov ecx, dword [esp + 0x68]
push eax
mov eax, edi
sub eax, ecx
push eax
lea eax, [ecx*4]
add eax, ebp
push eax
lea eax, [ebx + ecx*4]
push eax
call fcn.100430e0
add esp, 0x20
mov ebp, eax
jmp 0x1004cc67
mov ebx, dword [esp + 0x28]
push edi
push ebp
push ebx
call fcn.10001140
add esp, 0xc
xor ebp, ebp
mov eax, dword [esp + 0x40]
push esi
lea eax, [eax + edi*4]
push eax
push edi
push ebx
push ebx
call fcn.10042670
add esp, 0x14
sub ebp, eax
jns 0x1004cc94
push 1
push edi
push ebx
push ebx
call fcn.100430e0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x14
ret