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

Disassembly:
sub esp, 0x238
push ebx
push ebp
mov ebp, 1
shl ebp, cl
xor eax, eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x248]
dec ebp
cmp ebp, 0xff
push edi
mov dword [esp + 0x20], 0xd
mov dword [esp + 0x28], eax
mov dword [esi + 0x2a0], 1
mov dword [esp + 0x10], ebp
mov dword [esi], ecx
jle 0x1004feca
mov ebp, 0xff
mov dword [esp + 0x10], ebp
lea edi, [esi + 0x14]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], eax
mov edx, dword [esp + 0x248]
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], eax
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], eax
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], eax
mov dword [edi + 0x78], eax
mov dword [edi + 0x7c], eax
mov eax, dword [edx]
cmp eax, 5
jne 0x1004ff63
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
call edx
mov ecx, dword [esi]
push ebp
lea edx, [esi + 0x1a0]
mov dword [esi + 8], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
push edx
lea edx, [esi + 0xa0]
push edx
call eax
jmp 0x100500de
cmp eax, 6
jne 0x10050189
mov ecx, edx
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [esi]
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 8], eax
mov ebx, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
call edx
cmp ebx, eax
jne 0x10050189
mov dword [esp + 0xc], 0
test ebx, ebx
jle 0x100500da
xor ebp, ebp
mov dword [esp + 0x14], ebp
lea ebx, [esi + 0xa0]
jmp 0x1004ffb0
mov eax, dword [esp + 0x248]
mov eax, dword [eax]
cmp eax, 6
je 0x1004ffd5
push 6
push eax
push str.Call_to_Object_where_the_object_was_type__d__not_the_expected_type__d
xor edx, edx
call fcn.1001d950
add esp, 0xc
call fcn.10105849
mov ecx, dword [esp + 0x248]
mov eax, dword [ecx + 8]
test ebp, ebp
jl 0x10050170
mov edx, dword [esp + 0x14]
cmp edx, dword [eax + 0xc]
jge 0x10050170
mov edx, dword [eax]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [eax + 4]
push edx
add ecx, ebp
call fcn.100760f0
mov eax, dword [esp + 0x20]
cmp eax, 1
je 0x1005001d
cmp eax, 2
jne 0x10050180
cmp eax, 1
jne 0x10050023
fild dword [esp + 0x28]
jmp 0x10050027
fld qword [esp + 0x28]
lea ecx, [esp + 0x20]
fstp qword [ebx]
call fcn.10076130
mov eax, dword [esp + 0x248]
mov eax, dword [eax]
cmp eax, 6
je 0x10050057
push 6
push eax
push str.Call_to_Object_where_the_object_was_type__d__not_the_expected_type__d
xor edx, edx
call fcn.1001d950
add esp, 0xc
call fcn.10105849
mov ecx, dword [esp + 0x248]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
add ecx, 1
js 0x10050170
cmp ecx, dword [eax + 0xc]
jge 0x10050170
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
mov edx, dword [eax + 4]
push ecx
lea ecx, [edx + ebp + 0x10]
call fcn.100760f0
mov eax, dword [esp + 0x20]
cmp eax, 1
je 0x100500a2
cmp eax, 2
jne 0x10050180
cmp eax, 1
jne 0x100500a8
fild dword [esp + 0x28]
jmp 0x100500ac
fld qword [esp + 0x28]
fsub qword [ebx]
lea ecx, [esp + 0x20]
fstp qword [ebx + 0x100]
call fcn.10076130
mov eax, dword [esp + 0xc]
add dword [esp + 0x14], 2
inc eax
add ebx, 8
add ebp, 0x20
cmp eax, dword [esi + 8]
mov dword [esp + 0xc], eax
jl 0x1004ffb0
mov ebp, dword [esp + 0x10]
mov ecx, dword [esi]
xor eax, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
cmp eax, 7
jne 0x10050301
mov ebx, dword [esi]
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov eax, dword [ecx]
mov ebp, dword [ebx + 8]
mov edx, dword [eax + 0x20]
mov dword [esp + 0x1c], ebp
call edx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
mov dword [esp + 0x14], eax
push ebp
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x148]
push eax
call edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x10]
inc ecx
imul eax, ecx
test eax, eax
ja 0x100501a5
xor eax, eax
xor ebx, ebx
cmp dword [esi + 0x10], ebx
mov dword [esi + 0x94], eax
jle 0x10050197
fld qword [0x1026bd40]
mov ebp, edi
fld qword [0x1026be10]
fld qword [0x1026bd30]
mov eax, dword [esp + 0x10]
add eax, 1
jne 0x100501cf
jmp 0x10050218
mov dword [esp + 0x20], 5
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x20]
call fcn.10076130
xor eax, eax
mov dword [esi + 0x2a0], eax
mov dword [esi + 0x94], eax
mov eax, esi
pop edi
pop ebp
pop ebx
add esp, 0x238
ret 8
push eax
call fcn.10109f92
add esp, 4
test eax, eax
jne 0x10050141
push str.Out_of_memory_n
call fcn.10107014
add eax, 0x40
push eax
call fcn.10106bd7
add esp, 8
push 1
call fcn.1010a517
lea ecx, [eax*4]
test eax, eax
jl 0x100502f1
cmp eax, 0x1fffffff
jge 0x100502f1
test ecx, ecx
ja 0x100501f1
xor eax, eax
jmp 0x10050218
fstp st(1)
push ecx
fstp st(0)
fstp st(0)
call fcn.10109f92
add esp, 4
test eax, eax
je 0x100501b2
fld qword [0x1026bd30]
fld qword [0x1026be10]
fld qword [0x1026bd40]
fxch st(2)
xor edi, edi
cmp dword [esp + 0x10], edi
mov dword [ebp], eax
mov dword [esp + 0xc], edi
jl 0x100502d0
fild dword [esp + 0x10]
fild dword [esp + 0xc]
fmul qword [esi + 0x1a0]
fdiv st(1)
fadd qword [esi + 0xa0]
fadd st(4)
call fcn.1010cd70
test eax, eax
jge 0x10050250
xor eax, eax
jmp 0x1005025a
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jle 0x1005025a
mov eax, ecx
mov ecx, dword [esi + 0x10]
imul ecx, eax
add ecx, dword [esp + 0x14]
movzx edx, byte [ecx + ebx]
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fdiv st(3)
fmul qword [esp + ebx*8 + 0x40]
fadd qword [esp + ebx*8 + 0x140]
fld st(0)
fmul st(3)
call fcn.1010cd70
fnstcw word [esp + 0xc]
mov ecx, dword [ebp]
fmul st(3)
mov dword [ecx + edi*4], eax
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x10]
imul eax, edi
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
add eax, dword [esi + 0x94]
mov dl, byte [esp + 0x18]
fldcw word [esp + 0xc]
inc edi
cmp edi, dword [esp + 0x10]
mov byte [eax + ebx], dl
mov dword [esp + 0xc], edi
jle 0x1005022f
fstp st(0)
inc ebx
add ebp, 4
cmp ebx, dword [esi + 0x10]
jl 0x10050162
fstp st(1)
mov eax, esi
fstp st(0)
fstp st(0)
pop edi
pop ebp
pop ebx
add esp, 0x238
ret 8
fstp st(1)
fstp st(0)
fstp st(0)
push str.Bogus_memory_allocation_size_n
jmp 0x100501b7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
cmp eax, 8
jne 0x1005049c
mov ebx, dword [esi]
mov ecx, dword [ebx + 8]
mov dword [esi + 0xc], ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
mov ecx, eax
mov dword [esi + 0x10], ecx
mov edx, dword [ebx + 0xc]
lea ebx, [ebp + 1]
mov dword [esp + 0x18], edx
test ebx, ebx
jne 0x10050339
xor eax, eax
jmp 0x10050361
mov ebp, ebx
imul ebp, ecx
test ecx, ecx
jle 0x100502f7
test ebx, ebx
jl 0x100502f7
mov eax, SysReAllocString
cdq
idiv ecx
cmp ebx, eax
jge 0x100502f7
test ebp, ebp
ja 0x1005035a
xor eax, eax
jmp 0x10050361
mov eax, ebp
call fcn.100550f0
cmp dword [esi + 0x10], 0
mov dword [esi + 0x94], eax
mov dword [esp + 0x1c], 0
jle 0x10050197
lea ebp, [esp + 0x40]
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x10]
add eax, 1
je 0x100503bd
lea ecx, [eax*4]
test eax, eax
jl 0x100502f7
cmp eax, 0x1fffffff
jge 0x100502f7
test ecx, ecx
ja 0x100503ac
xor eax, eax
jmp 0x100503bd
push ecx
call fcn.10109f92
add esp, 4
test eax, eax
je 0x100501b2
mov ecx, dword [esp + 0x14]
xor ebx, ebx
cmp dword [esp + 0x10], ebx
mov dword [ecx], eax
mov dword [esp + 0xc], ebx
jl 0x10050474
fild dword [esp + 0x10]
mov edi, dword [esp + 0x18]
fstp qword [esp + 0x38]
fild dword [esp + 0xc]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x144]
fmul qword [esi + 0x1a0]
push ecx
mov ecx, edi
fdiv qword [esp + 0x40]
fadd qword [esi + 0xa0]
fstp qword [esp + 0x148]
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
call edx
fld qword [ebp]
fmul qword [0x1026bd30]
call fcn.1010cd70
fnstcw word [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov dword [edx + ebx*4], eax
fld qword [ebp]
movzx eax, word [esp + 0xc]
fmul qword [0x1026be10]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x1c]
imul ecx, ebx
add ecx, dword [esi + 0x94]
or eax, 0xc00
mov dword [esp + 0x34], eax
inc ebx
cmp ebx, dword [esp + 0x10]
fldcw word [esp + 0x34]
fistp dword [esp + 0x34]
mov al, byte [esp + 0x34]
mov byte [ecx + edx], al
fldcw word [esp + 0xc]
mov dword [esp + 0xc], ebx
jle 0x100503df
mov eax, dword [esp + 0x1c]
add dword [esp + 0x14], 4
inc eax
add ebp, 8
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x1c], eax
jl 0x10050381
mov eax, esi
pop edi
pop ebp
pop ebx
add esp, 0x238
ret 8
mov ebp, dword [esp + 0x10]
add ebp, 1
mov ebx, dword [esi + 8]
jne 0x100504ac
xor eax, eax
jmp 0x100504e0
mov ecx, ebp
imul ecx, ebx
test ebx, ebx
jle 0x100502f7
test ebp, ebp
jl 0x100502f7
mov eax, SysReAllocString
cdq
idiv ebx
cmp ebp, eax
jge 0x100502f7
test ecx, ecx
ja 0x100504d9
xor eax, eax
jmp 0x100504e0
mov eax, ecx
call fcn.100550f0
xor ebp, ebp
cmp dword [esi + 8], ebp
mov dword [esi + 0x94], eax
jle 0x10050197
fld qword [0x1026bd40]
mov dword [esp + 0x14], edi
fld qword [0x1026be10]
lea edi, [esi + 0xa0]
fld qword [0x1026bd30]
mov ecx, dword [esp + 0x10]
add ecx, 1
jne 0x1005051a
xor eax, eax
jmp 0x10050568
lea eax, [ecx*4]
test ecx, ecx
jl 0x100505fd
cmp ecx, 0x1fffffff
jge 0x100505fd
test eax, eax
ja 0x1005053d
xor eax, eax
jmp 0x10050568
fstp st(2)
push eax
fstp st(0)
fstp st(0)
call fcn.10109f92
add esp, 4
test eax, eax
je 0x100501b2
fld qword [0x1026bd30]
fld qword [0x1026be10]
fld qword [0x1026bd40]
fxch st(2)
mov ecx, dword [esp + 0x14]
xor ebx, ebx
cmp dword [esp + 0x10], ebx
mov dword [ecx], eax
mov dword [esp + 0xc], ebx
jl 0x100505d7
fild dword [esp + 0x10]
fild dword [esp + 0xc]
fmul qword [edi + 0x100]
fdiv st(1)
fadd qword [edi]
fld st(0)
fmul st(3)
call fcn.1010cd70
fmul st(3)
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
fadd st(4)
mov dword [ecx + ebx*4], eax
call fcn.1010cd70
test eax, eax
jge 0x100505af
xor eax, eax
jmp 0x100505bb
cmp eax, 0xff
jle 0x100505bb
mov eax, 0xff
mov edx, dword [esi + 8]
imul edx, ebx
add edx, dword [esi + 0x94]
inc ebx
cmp ebx, dword [esp + 0x10]
mov byte [edx + ebp], al
mov dword [esp + 0xc], ebx
jle 0x1005057e
fstp st(0)
add dword [esp + 0x14], 4
inc ebp
add edi, 8
cmp ebp, dword [esi + 8]
jl 0x1005050d
fstp st(2)
pop edi
fstp st(0)
pop ebp
fstp st(0)
mov eax, esi
pop ebx
add esp, 0x238
ret 8
fstp st(2)
push str.Bogus_memory_allocation_size_n
fstp st(0)
fstp st(0)
jmp 0x100501b7