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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [edi + 4]
sub esp, 0xb0
push ebx
push esi
xor esi, esi
cmp eax, esi
je 0x42d841
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov dword [edi + 4], esi
mov ecx, dword [edi + 0x44]
fld1
xor edx, edx
mov dword [edi + 8], esi
cmp ecx, dword [edi + 0x48]
je 0x42d871
mov ebx, dword [edi + 0x48]
mov esi, dword [ecx]
fcom dword [esi + 0x34]
fnstsw ax
test ah, 1
je 0x42d86a
fcom dword [esi + 0x38]
fnstsw ax
test ah, 1
je 0x42d86a
inc edx
add ecx, 4
cmp ecx, ebx
jne 0x42d853
lea eax, [edx + edx*2]
fstp st(0)
add eax, eax
xor ecx, ecx
mov dword [edi + 8], eax
mov edx, 0x24
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045f05c
mov ecx, dword [edi + 0x44]
add esp, 4
mov dword [edi + 4], eax
mov dword [ebp - 0x34], ecx
cmp ecx, dword [edi + 0x48]
je 0x42dc99
fld1
xor ebx, ebx
fld1
mov esi, dword [ecx]
fcom dword [esi + 0x34]
fnstsw ax
test ah, 1
je 0x42dc86
fcom dword [esi + 0x38]
fnstsw ax
test ah, 1
je 0x42dc86
fstp st(0)
lea edx, [esi + 0x14]
fld dword [esi + 0x2c]
lea ecx, [ebp - 0x44]
fstp dword [ebp - 0x54]
lea eax, [ebp - 0x6c]
fld dword [esi + 0x30]
fstp dword [ebp - 0xc]
fld dword [esi + 0x34]
fadd st(1)
fstp dword [ebp - 0x1c]
fadd dword [esi + 0x38]
fstp dword [ebp - 0x28]
fld dword [0x554dec]
fstp dword [ebp - 0x44]
fld dword [0x554de8]
fstp dword [ebp - 0x40]
call fcn.00420f00
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x44]
lea eax, [ebp - 0x7c]
call fcn.00420f00
fld dword [esi + 0x3c]
fstp dword [ebp - 0x10]
sub esp, 8
fld dword [esi + 0x28]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x48]
mov eax, esp
fld dword [esi + 0x24]
lea edx, [ebp - 0x8c]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x48]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x54]
fstp dword [ebp - 0x30]
fld dword [ebp - 0xc]
mov dword [ebp - 0xc], esp
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fstp dword [ebp - 0x8c]
fldz
fstp dword [ebp - 0x88]
call fcn.00403c10
fld dword [ebp - 0x10]
push ecx
fstp dword [esp]
lea esi, [ebp - 0x94]
call fcn.0042d7c0
mov edx, eax
lea ecx, [ebp - 0x30]
lea eax, [ebp - 0x3c]
call fcn.00420f00
fldz
fstp dword [ebp - 0x74]
sub esp, 8
fld dword [ebp - 0x28]
lea ecx, [ebp - 0x24]
mov eax, esp
fstp dword [ebp - 0x70]
lea edx, [ebp - 0x74]
mov dword [ebp - 0xc], esp
call fcn.00403c10
fld dword [ebp - 0x10]
push ecx
lea esi, [ebp - 0xa4]
fstp dword [esp]
call fcn.0042d7c0
mov edx, eax
lea ecx, [ebp - 0x30]
lea eax, [ebp - 0x18]
call fcn.00420f00
fldz
sub esp, 8
fst dword [ebp - 0x64]
lea ecx, [ebp - 0x24]
fstp dword [ebp - 0x60]
mov eax, esp
lea edx, [ebp - 0x64]
mov dword [ebp - 0xc], esp
call fcn.00403c10
fld dword [ebp - 0x10]
push ecx
lea esi, [ebp - 0x9c]
fstp dword [esp]
call fcn.0042d7c0
mov edx, eax
lea ecx, [ebp - 0x30]
lea eax, [ebp - 0x50]
call fcn.00420f00
fld dword [ebp - 0x1c]
fstp dword [ebp - 0x84]
sub esp, 8
fld dword [ebp - 0x28]
lea ecx, [ebp - 0x24]
mov eax, esp
fstp dword [ebp - 0x80]
lea edx, [ebp - 0x84]
mov dword [ebp - 0xc], esp
call fcn.00403c10
fld dword [ebp - 0x10]
push ecx
lea esi, [ebp - 0xac]
fstp dword [esp]
call fcn.0042d7c0
mov edx, eax
lea ecx, [ebp - 0x30]
lea eax, [ebp - 0x5c]
call fcn.00420f00
fld dword [ebp - 0x38]
mov eax, dword [edi + 4]
fstp dword [ebp - 4]
fld dword [ebp - 0x3c]
fstp dword [ebx + eax]
mov ecx, dword [edi + 4]
fld dword [ebp - 4]
fstp dword [ebx + ecx + 4]
mov edx, dword [edi + 4]
fld dword [ebp - 0x7c]
fst dword [ebx + edx + 0x1c]
mov eax, dword [edi + 4]
fld dword [ebp - 0x78]
fst dword [ebx + eax + 0x20]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
fld dword [ebp - 0x18]
mov eax, dword [edi + 4]
fstp dword [ebx + eax + 0x24]
mov dword [ebp - 4], edx
fld dword [ebp - 4]
mov dword [ebp - 8], ecx
mov ecx, dword [edi + 4]
fstp dword [ebx + ecx + 0x28]
mov edx, dword [edi + 4]
fld dword [ebp - 0x6c]
fst dword [ebx + edx + 0x40]
mov eax, dword [edi + 4]
fld dword [ebp - 0x68]
fst dword [ebx + eax + 0x44]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
fld dword [ebp - 0x50]
mov eax, dword [edi + 4]
fstp dword [ebx + eax + 0x48]
mov dword [ebp - 4], edx
fld dword [ebp - 4]
mov dword [ebp - 8], ecx
mov ecx, dword [edi + 4]
fstp dword [ebx + ecx + 0x4c]
mov edx, dword [edi + 4]
fxch st(1)
fst dword [ebx + edx + 0x64]
mov eax, dword [edi + 4]
fxch st(2)
fst dword [ebx + eax + 0x68]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
fld dword [ebp - 0x5c]
mov eax, dword [edi + 4]
fstp dword [ebx + eax + 0x6c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ecx, dword [edi + 4]
fld dword [ebp - 4]
fstp dword [ebx + ecx + 0x70]
mov edx, dword [edi + 4]
fxch st(3)
fst dword [ebx + edx + 0x88]
mov eax, dword [edi + 4]
fxch st(1)
fst dword [ebx + eax + 0x8c]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
fld dword [ebp - 0x18]
mov eax, dword [edi + 4]
fstp dword [ebx + eax + 0x90]
mov dword [ebp - 4], edx
fld dword [ebp - 4]
mov dword [ebp - 8], ecx
mov ecx, dword [edi + 4]
fstp dword [ebx + ecx + 0x94]
mov edx, dword [edi + 4]
fxch st(2)
fstp dword [ebx + edx + 0xac]
mov eax, dword [edi + 4]
fxch st(1)
fstp dword [ebx + eax + 0xb0]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
fld dword [ebp - 0x3c]
mov eax, dword [edi + 4]
fstp dword [ebx + eax + 0xb4]
mov dword [ebp - 4], edx
fld dword [ebp - 4]
mov dword [ebp - 8], ecx
mov ecx, dword [edi + 4]
fstp dword [ebx + ecx + 0xb8]
mov edx, dword [edi + 4]
fstp dword [ebx + edx + 0xd0]
mov eax, dword [edi + 4]
fstp dword [ebx + eax + 0xd4]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x40]
fldz
mov dword [ebx + ecx + 0x18], edx
mov eax, dword [edi + 4]
fst dword [ebx + eax + 8]
mov ecx, dword [edi + 4]
fst dword [ebx + ecx + 0xc]
mov edx, dword [edi + 4]
fst dword [ebx + edx + 0x10]
mov eax, dword [edi + 4]
fld1
fst dword [ebx + eax + 0x14]
mov ecx, dword [edi + 4]
fxch st(1)
mov edx, dword [edi + 0x40]
mov dword [ebx + ecx + 0x3c], edx
mov eax, dword [edi + 4]
fst dword [ebx + eax + 0x2c]
mov ecx, dword [edi + 4]
fst dword [ebx + ecx + 0x30]
mov edx, dword [edi + 4]
fst dword [ebx + edx + 0x34]
mov eax, dword [edi + 4]
fxch st(1)
fst dword [ebx + eax + 0x38]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x40]
fxch st(1)
mov dword [ebx + ecx + 0x60], edx
mov eax, dword [edi + 4]
fst dword [ebx + eax + 0x50]
mov ecx, dword [edi + 4]
fst dword [ebx + ecx + 0x54]
mov edx, dword [edi + 4]
fst dword [ebx + edx + 0x58]
mov eax, dword [edi + 4]
fxch st(1)
fst dword [ebx + eax + 0x5c]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x40]
mov dword [ebx + ecx + 0x84], edx
mov eax, dword [edi + 4]
fxch st(1)
fst dword [ebx + eax + 0x74]
mov ecx, dword [edi + 4]
fst dword [ebx + ecx + 0x78]
mov edx, dword [edi + 4]
fst dword [ebx + edx + 0x7c]
mov eax, dword [edi + 4]
fxch st(1)
add ebx, 0xd8
fst dword [ebx + eax - 0x58]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x40]
fxch st(1)
mov dword [ebx + ecx - 0x30], edx
mov eax, dword [edi + 4]
fst dword [ebx + eax - 0x40]
mov ecx, dword [edi + 4]
fst dword [ebx + ecx - 0x3c]
mov edx, dword [edi + 4]
fst dword [ebx + edx - 0x38]
mov eax, dword [edi + 4]
fxch st(1)
fst dword [ebx + eax - 0x34]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x40]
fxch st(1)
mov dword [ebx + ecx - 0xc], edx
mov eax, dword [edi + 4]
fst dword [ebx + eax - 0x1c]
mov ecx, dword [edi + 4]
fst dword [ebx + ecx - 0x18]
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x34]
fstp dword [ebx + edx - 0x14]
mov eax, dword [edi + 4]
fst dword [ebx + eax - 0x10]
fld1
fxch st(1)
add ecx, 4
mov dword [ebp - 0x34], ecx
cmp ecx, dword [edi + 0x48]
jne 0x42d8ac
fstp st(1)
fstp st(0)
mov esi, dword [edi + 0x44]
mov ecx, dword [edi + 0x48]
cmp esi, ecx
je 0x42dcc2
mov eax, ecx
sub eax, ecx
sar eax, 2
lea ebx, [eax*4]
push ebx
push ecx
push esi
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
add esi, ebx
mov dword [edi + 0x48], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret