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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d6f2e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x154
push ebx
push esi
push edi
xor edi, edi
xor eax, eax
mov dword [esp + 0x30], 0x5e2824
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], eax
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov dword [esp + 0x168], edi
mov ecx, dword [ecx + 8]
cmp ecx, edi
jle 0x512a82
jmp 0x512a39
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0x10]
push 0xffffffffffffffff
mov edi, eax
mov ecx, dword [edx + 4]
mov esi, dword [ecx + ebx*4]
lea ecx, [esp + 0x34]
mov edx, dword [esi + 0x10]
add edx, eax
push edx
call fcn.0046d900
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x34]
mov esi, dword [esi + 0xc]
mov edx, eax
dec eax
lea ecx, [ecx + edi*4]
test edx, edx
je 0x512a77
inc eax
mov edx, dword [esi]
add esi, 4
mov dword [ecx], edx
add ecx, 4
dec eax
jne 0x512a6a
mov eax, dword [ebp + 0x10]
inc ebx
cmp ebx, dword [eax + 8]
jl 0x512a35
xor edi, edi
lea ecx, [esp + 0x80]
call fcn.004b6ca0
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x80]
push ecx
push esi
mov byte [esp + 0x170], 1
call fcn.0050b890
add esp, 8
lea ecx, [esp + 0x60]
call fcn.004b6ca0
lea edx, [esp + 0x60]
lea eax, [esp + 0x30]
push edx
push eax
mov byte [esp + 0x170], 2
call fcn.0050b890
fld qword [esp + 0x98]
fcomp qword [esp + 0x78]
add esp, 8
fnstsw ax
test ah, 0x41
jne 0x512ae8
fld qword [esp + 0x90]
jmp 0x512aec
fld qword [esp + 0x70]
mov ebx, dword [ebp + 8]
fld qword [ebx + 0x70]
fxch st(1)
fdiv st(1)
fxch st(1)
fstp st(0)
fcom qword [0x5e78e8]
fnstsw ax
test ah, 1
jne 0x512f33
fcom qword [0x5ebbc0]
fnstsw ax
test ah, 0x41
je 0x512f33
fld qword [0x5e2858]
fsub st(1)
mov ecx, ebx
fsub qword [0x5e78f0]
fsqrt
fstp qword [esp + 0x44]
fstp st(0)
call fcn.0050b020
push eax
lea ecx, [esp + 0x14]
call fcn.004b6cb0
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 4
call fcn.004b7040
fmul qword [esp + 0x44]
lea ecx, [esp + 0x10]
fsubr qword [esp + 0x20]
fstp qword [esp + 0x10]
call fcn.004b7060
fmul qword [esp + 0x44]
mov eax, dword [esi + 8]
test eax, eax
fsubr qword [esp + 0x28]
fstp qword [esp + 0x18]
jle 0x512c7a
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + edi*4]
call fcn.0050b020
mov ecx, eax
fld qword [ecx]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x512b9e
fld qword [ecx]
jmp 0x512ba2
fld qword [esp + 0x10]
fld qword [ecx + 0x10]
fld qword [esp + 0x20]
fcompp
fnstsw ax
test ah, 0x41
jne 0x512bb7
fld qword [ecx + 0x10]
jmp 0x512bbb
fld qword [esp + 0x20]
fxch st(1)
fadd qword [0x5f01a8]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
je 0x512c13
fld qword [ecx + 8]
fld qword [esp + 0x18]
fcompp
fnstsw ax
test ah, 1
je 0x512be3
fld qword [ecx + 8]
jmp 0x512be7
fld qword [esp + 0x18]
fld qword [ecx + 0x18]
fld qword [esp + 0x28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x512bfc
fld qword [ecx + 0x18]
jmp 0x512c00
fld qword [esp + 0x28]
fxch st(1)
fadd qword [0x5f01a8]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x512c20
mov eax, dword [esi + 8]
inc edi
cmp edi, eax
jge 0x512c7a
jmp 0x512b80
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 2
call fcn.0042bd50
lea ecx, [esp + 0x60]
mov byte [esp + 0x168], 1
call fcn.0042bd50
lea ecx, [esp + 0x80]
mov byte [esp + 0x168], 0
call fcn.0042bd50
mov dword [esp + 0x30], 0x5e2824
mov eax, dword [esp + 0x34]
mov dword [esp + 0x168], 5
test eax, eax
je 0x512f7e
jmp 0x512f75
mov eax, dword [esp + 0x38]
xor edi, edi
test eax, eax
jle 0x512d29
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + edi*4]
call fcn.0050b020
mov ecx, eax
fld qword [ecx]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x512ca7
fld qword [ecx]
jmp 0x512cab
fld qword [esp + 0x10]
fld qword [ecx + 0x10]
fld qword [esp + 0x20]
fcompp
fnstsw ax
test ah, 0x41
jne 0x512cc0
fld qword [ecx + 0x10]
jmp 0x512cc4
fld qword [esp + 0x20]
fxch st(1)
fadd qword [0x5f01a8]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
je 0x512d1c
fld qword [ecx + 8]
fld qword [esp + 0x18]
fcompp
fnstsw ax
test ah, 1
je 0x512cec
fld qword [ecx + 8]
jmp 0x512cf0
fld qword [esp + 0x18]
fld qword [ecx + 0x18]
fld qword [esp + 0x28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x512d05
fld qword [ecx + 0x18]
jmp 0x512d09
fld qword [esp + 0x28]
fxch st(1)
fadd qword [0x5f01a8]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x512d29
mov eax, dword [esp + 0x38]
inc edi
cmp edi, eax
jl 0x512c88
cmp edi, dword [esp + 0x38]
jne 0x512d89
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 2
call fcn.0042bd50
lea ecx, [esp + 0x60]
mov byte [esp + 0x168], 1
call fcn.0042bd50
lea ecx, [esp + 0x80]
mov byte [esp + 0x168], 0
call fcn.0042bd50
mov dword [esp + 0x30], 0x5e2824
mov eax, dword [esp + 0x34]
mov dword [esp + 0x168], 6
test eax, eax
je 0x512f7e
jmp 0x512f75
mov eax, dword [ebp + 0x14]
push eax
call fcn.0050bb60
add esp, 4
lea ecx, [esp + 0xa0]
call fcn.0050ae90
mov dword [esp + 0xa0], 0x5f0200
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
fld qword [esp + 0x20]
fsub qword [0x5e2910]
mov eax, dword [esp + 0x1c]
push 0
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
sub esp, 8
mov byte [esp + 0x17c], 7
fstp qword [esp]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
lea ecx, [esp + 0xc4]
call fcn.0050c5e0
mov edi, 0x5e2824
xor eax, eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov ecx, dword [esi + 8]
push 0xffffffffffffffff
push ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0x170], 8
call fcn.0046d900
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
mov ecx, dword [esp + 0x50]
mov edx, eax
dec eax
test edx, edx
je 0x512e41
inc eax
mov edx, dword [esi]
add esi, 4
mov dword [ecx], edx
add ecx, 4
dec eax
jne 0x512e34
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.0040c9d0
mov edx, dword [ebx + 0x70]
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebx + 0x74]
mov dword [esp + 0x44], edx
push esi
lea edx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
push ebx
mov dword [esp + 0x60], eax
call fcn.00511030
mov edx, dword [esi + 0x274]
add esp, 0x18
test edx, edx
fstp st(0)
setg bl
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x50]
mov byte [esp + 0x168], 9
test eax, eax
je 0x512eab
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x4c], 0x5e262c
mov byte [esp + 0x168], 4
mov dword [esp + 0xa0], 0x5f0200
call fcn.0050af80
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 2
call fcn.0042bd50
lea ecx, [esp + 0x60]
mov byte [esp + 0x168], 1
call fcn.0042bd50
lea ecx, [esp + 0x80]
mov byte [esp + 0x168], 0
call fcn.0042bd50
lea ecx, [esp + 0x30]
mov dword [esp + 0x168], 0xffffffff
call fcn.0040bf90
mov al, bl
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x60]
mov byte [esp + 0x168], 1
fstp st(0)
call fcn.0042bd50
lea ecx, [esp + 0x80]
mov byte [esp + 0x168], 0
call fcn.0042bd50
mov dword [esp + 0x30], 0x5e2824
mov eax, dword [esp + 0x34]
mov dword [esp + 0x168], 3
cmp eax, edi
je 0x512f7e
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov ecx, dword [esp + 0x160]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret