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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xcc
mov eax, dword [ebx]
push esi
mov esi, dword [ebx + 8]
mov dword [ebp + 4], eax
mov eax, dword [ebx + 4]
push edi
mov dword [ebp + 0x34], eax
mov eax, dword [esi + 0x2c]
or dword [ebp - 4], 0xffffffff
push 0x28
mov dword [ebp + 0x28], eax
lea eax, [ebx + 0x38]
push 0
push eax
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x14], eax
call fcn.0059cb30
fld qword [0x618b18]
fstp qword [ebx + 0x50]
mov al, byte [esi + 0x20]
mov ecx, dword [esi + 0x44]
not al
movzx eax, al
add esp, 0xc
and eax, 8
push 3
shl eax, 4
pop edi
or eax, edi
xor edx, edx
mov dword [ebp], eax
cmp ecx, edx
je 0x53c4ea
mov dword [ebp + 0x68], ecx
mov dword [ebp + 8], 0xffffcfff
mov dword [ebp + 0x18], eax
jmp 0x53c545
push 0x30
push edx
lea eax, [ebp - 0x54]
push eax
call fcn.0059cb30
xor eax, eax
inc eax
mov ecx, eax
mov word [ebp - 0x2c], cx
lea ecx, [ebp - 4]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 0x2a], 5
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x48], ecx
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x1c]
add esp, 0xc
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
test byte [esi + 0x24], al
jne 0x53c532
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x40], eax
and dword [ebp + 0x68], 0
lea ecx, [ebp - 0x54]
mov dword [ebp + 8], 0xfff0ffff
mov dword [ebp + 0x18], edi
xor edx, edx
mov eax, dword [ebx + 0x20]
mov dword [ebp + 0x30], ecx
cmp eax, edx
je 0x53c556
mov eax, dword [eax]
mov dword [ebp + 0x20], eax
jmp 0x53c559
mov dword [ebp + 0x20], edx
mov eax, dword [ebx + 0x2c]
cmp eax, edx
je 0x53c57b
mov esi, dword [ebx + 0x34]
imul eax, eax, 0x58
movzx eax, word [eax + esi - 0x52]
cmp eax, dword [ebp + 0x20]
mov dword [ebp + 0x10], eax
setl byte [ebp + 0x76]
mov byte [ebp + 0x77], 0
jmp 0x53c58c
cmp dword [ebp + 0x20], edx
mov dword [ebp + 0x10], edx
setg byte [ebp + 0x76]
cmp dword [ebx + 0x24], edx
setne byte [ebp + 0x77]
cmp ecx, edx
je 0x53cba8
mov esi, dword [ebp + 0x30]
mov eax, dword [esi + 8]
fld1
mov cl, byte [ebp + 0x76]
fstp qword [ebp - 0x14]
mov dword [ebp + 0x3c], eax
xor eax, eax
push 0x28
push eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x38], eax
mov byte [ebp + 0x6e], al
mov byte [ebp + 0x6d], cl
mov cl, byte [ebp + 0x77]
lea eax, [ebp + 0x40]
push eax
mov dword [ebp + 0x70], 1
mov byte [ebp + 0x6f], cl
call fcn.0059cb30
mov ax, word [ebp + 0x10]
add esp, 0xc
mov word [ebp + 0x46], ax
xor eax, eax
mov word [ebp + 0x44], ax
jmp 0x53c67c
push dword [ebp + 0x68]
movzx eax, word [ebp + 0x44]
push dword [ebp + 0x18]
mov ecx, dword [esi + 4]
push dword [ebx + 0x14]
mov eax, dword [ecx + eax*4]
push dword [ebx + 0x10]
push eax
push dword [ebp + 0x28]
push dword [ebp + 0x34]
call fcn.0053bd04
add esp, 0x1c
test eax, eax
je 0x53c686
or dword [ebp + 0x40], 0x11000
movzx ecx, word [eax + 0x10]
test cl, 1
je 0x53c65d
mov ecx, dword [eax]
or dword [ebp + 0x40], 0x40000
mov dx, word [ecx + 2]
mov edi, 0x800
and dx, di
cmp dx, di
jne 0x53c647
mov ecx, dword [ebp + 0x70]
imul ecx, ecx, 0x19
mov dword [ebp + 0x70], ecx
mov dword [ebp + 0x1c], 1
jmp 0x53c668
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x53c668
mov ecx, dword [ecx]
test ecx, ecx
je 0x53c668
imul ecx, dword [ebp + 0x70]
mov dword [ebp + 0x70], ecx
jmp 0x53c668
test cl, cl
jns 0x53c668
or dword [ebp + 0x40], 0x80000
mov ecx, dword [eax + 0x18]
or dword [ebp + 0x60], ecx
mov eax, dword [eax + 0x1c]
or dword [ebp + 0x64], eax
inc word [ebp + 0x44]
mov ax, word [ebp + 0x44]
cmp ax, word [esi + 0x28]
jb 0x53c5e2
movzx eax, word [esi + 0x28]
cmp word [ebp + 0x44], ax
jne 0x53c6d1
cmp byte [esi + 0x2a], 0
je 0x53c6d1
test dword [ebp + 0x40], 0xc0000
jne 0x53c793
mov eax, dword [ebx + 0x2c]
or dword [ebp + 0x40], 0x2000000
test eax, eax
je 0x53c6c5
mov ecx, dword [ebx + 0x34]
imul eax, eax, 0x58
test dword [eax + ecx - 0x58], 0x4000000
je 0x53c793
or dword [ebp + 0x40], 0x4000000
jmp 0x53c793
test byte [esi + 0x2c], 4
jne 0x53c793
cmp word [ebp + 0x44], ax
jne 0x53c6e6
or edi, 0xffffffff
jmp 0x53c6f0
movzx eax, word [ebp + 0x44]
mov ecx, dword [esi + 4]
mov edi, dword [ecx + eax*4]
push dword [ebp + 0x68]
push 0x3c
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push edi
push dword [ebp + 0x28]
push dword [ebp + 0x34]
call fcn.0053bd04
add esp, 0x1c
test eax, eax
je 0x53c793
push dword [ebp + 0x68]
push 0x18
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push edi
push dword [ebp + 0x28]
push dword [ebp + 0x34]
call fcn.0053bd04
push dword [ebp + 0x68]
mov esi, eax
push 0x24
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push edi
push dword [ebp + 0x28]
push dword [ebp + 0x34]
call fcn.0053bd04
mov ecx, eax
push esi
push ecx
lea eax, [ebp - 0x14]
call fcn.00524173
add esp, 0x40
test esi, esi
je 0x53c76f
or dword [ebp + 0x40], 0x100000
mov eax, dword [esi + 0x18]
or dword [ebp + 0x60], eax
mov eax, dword [esi + 0x1c]
or dword [ebp + 0x64], eax
mov dword [ebp + 0x38], 1
test ecx, ecx
je 0x53c789
or dword [ebp + 0x40], 0x200000
mov eax, dword [ecx + 0x18]
or dword [ebp + 0x60], eax
mov eax, dword [ecx + 0x1c]
inc dword [ebp + 0x38]
or dword [ebp + 0x64], eax
or dword [ebp + 0x40], 0x22000
mov esi, dword [ebp + 0x30]
cmp byte [ebp + 0x76], 0
je 0x53c80a
mov eax, dword [ebp + 0xc]
test byte [eax + 0x20], 8
jne 0x53c80a
and dword [ebp + 0x24], 0
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x2c]
push eax
push dword [ebp + 0x28]
mov eax, esi
mov ecx, ebx
mov dword [ebp + 0x2c], 2
call fcn.0053c169
mov word [ebp + 0x46], ax
movzx eax, ax
add esp, 0xc
cmp dword [ebp + 0x10], eax
jl 0x53c7d9
test dword [ebp + 0x40], 0x4000000
je 0x53c7ed
or dword [ebp + 0x40], 0x800000
cmp dword [ebp + 0x24], 0
je 0x53c7ed
or dword [ebp + 0x40], 0x4000
cmp dword [ebp + 0x20], eax
jne 0x53c7fd
or dword [ebp + 0x40], 0x22000
mov byte [ebp + 0x6d], 0
test byte [ebp + 0x2c], 1
je 0x53c80a
or dword [ebp + 0x40], 0x1000000
cmp byte [ebp + 0x77], 0
je 0x53c842
movzx eax, word [ebp + 0x44]
push eax
push dword [ebx + 0x24]
push dword [ebp + 0x28]
push esi
push dword [ebp + 0x34]
push dword [ebp + 4]
call fcn.0053bf6c
add esp, 0x18
test eax, eax
je 0x53c842
test dword [ebp + 0x40], 0x40000
jne 0x53c842
or dword [ebp + 0x40], 0x40022000
mov byte [ebp + 0x6f], 0
mov ecx, dword [ebp + 0x68]
test ecx, ecx
je 0x53c8a0
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 8], eax
movzx eax, word [ecx + 0x28]
test eax, eax
jle 0x53c88e
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x24], eax
mov ecx, dword [ecx]
cmp ecx, 0x3f
jge 0x53c880
xor eax, eax
inc eax
xor edx, edx
call fcn.005aa750
not eax
not edx
and edi, eax
and dword [ebp - 8], edx
mov ecx, dword [ebp + 0x2c]
add ecx, 4
dec dword [ebp + 0x24]
mov dword [ebp + 0x2c], ecx
jne 0x53c866
or edi, dword [ebp - 8]
jne 0x53c89c
or dword [ebp + 0x40], 0x400000
jmp 0x53c8a0
mov byte [ebp + 0x6e], 1
movzx edi, word [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
lea eax, [ecx + edi*4]
mov dword [ebp + 0x2c], eax
mov eax, dword [eax]
imul eax, dword [ebp + 0x70]
mov dword [ebp + 0x24], eax
fild dword [ebp + 0x24]
test eax, eax
jge 0x53c8c3
fadd qword [0x60ae10]
cmp dword [ebp + 0x1c], 0
fstp qword [ebp + 0x48]
je 0x53c926
mov edx, dword [ecx]
fld qword [ebp + 0x48]
mov eax, edx
fadd st(0), st(0)
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
test eax, eax
jge 0x53c8e5
fadd qword [0x60ae10]
fcompp
fnstsw ax
test ah, 5
jp 0x53c926
shr edx, 1
mov dword [ebp + 0x1c], edx
fild dword [ebp + 0x1c]
test edx, edx
jge 0x53c900
fadd qword [0x60ae10]
mov eax, dword [ebp + 0x2c]
fstp qword [ebp + 0x48]
mov eax, dword [eax]
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
test eax, eax
jge 0x53c918
fadd qword [0x60ae10]
fdivr qword [ebp + 0x48]
call fcn.005a0450
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x70], eax
fld qword [ebp + 0x48]
fdiv qword [ebp - 0x14]
fstp qword [ebp + 0x48]
fld1
fcom qword [ebp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x53c940
fstp qword [ebp + 0x48]
jmp 0x53c942
fstp st(0)
mov eax, dword [ebp + 0x40]
and eax, 0xfe7fbfff
cmp eax, 0x400000
jne 0x53c992
mov eax, dword [ebp + 0x34]
test byte [eax + 0xe], 4
jne 0x53c992
cmp dword [0x663b90], 0
je 0x53c992
mov eax, dword [ebp + 4]
mov eax, dword [eax]
test byte [eax + 0x34], 0x40
jne 0x53c992
mov eax, dword [ecx]
movzx ecx, word [esi + 0x28]
imul eax, eax, 3
add eax, ecx
mov dword [ebp + 0x3c], eax
fild dword [ebp + 0x3c]
test eax, eax
jge 0x53c989
fadd qword [0x60ae10]
or dword [ebp + 0x40], 0x80020000
jmp 0x53ca06
test dword [ebp + 0x40], 0x100f3000
mov eax, dword [ecx]
jne 0x53c9d1
shl eax, 2
mov dword [ebp + 0x3c], eax
fild dword [ebp + 0x3c]
test eax, eax
jge 0x53c9b0
fadd qword [0x60ae10]
and dword [ebp + 0x40], 0xffbfffff
fstp qword [ebp + 0x58]
cmp dword [ebp + 0x68], 0
je 0x53ca09
mov ax, word [ebp + 0x10]
and dword [ebp + 0x40], 0xff7fffff
mov word [ebp + 0x46], ax
jmp 0x53ca09
fild dword [ecx]
test eax, eax
jge 0x53c9dd
fadd qword [0x60ae10]
push ecx
push ecx
fstp qword [esp]
call fcn.00524135
add esp, 8
cmp dword [ebp + 0x68], 0
je 0x53ca00
cmp byte [ebp + 0x6e], 0
je 0x53ca00
fild dword [ebp + 0x70]
fadd qword [ebp + 0x48]
fmulp st(1)
jmp 0x53ca03
fimul dword [ebp + 0x70]
fadd qword [ebp + 0x48]
fstp qword [ebp + 0x58]
cmp byte [ebp + 0x6d], 0
je 0x53ca4d
movzx eax, word [ebp + 0x46]
mov ecx, dword [ebp + 0x20]
sub ecx, eax
mov dword [ebp + 0x3c], ecx
push ecx
push ecx
fild dword [ebp + 0x3c]
fmul qword [ebp + 0x48]
fidiv dword [ebp + 0x20]
fstp qword [esp]
call fcn.00524135
xor eax, eax
add esp, 8
cmp word [ebp + 0x46], ax
sete al
inc eax
inc eax
mov dword [ebp + 0x3c], eax
fild dword [ebp + 0x3c]
fmulp st(1)
fmul qword [ebp + 0x48]
fadd qword [ebp + 0x58]
fstp qword [ebp + 0x58]
cmp byte [ebp + 0x6f], 0
je 0x53ca72
fld qword [ebp + 0x48]
push ecx
push ecx
fstp qword [esp]
call fcn.00524135
fmul qword [ebp + 0x48]
add esp, 8
fmul qword [0x618b10]
fadd qword [ebp + 0x58]
fstp qword [ebp + 0x58]
fld qword [0x618b08]
fcomp qword [ebp + 0x48]
fnstsw ax
test ah, 5
jp 0x53cb4c
fld qword [ebx + 0x50]
fcomp qword [ebp + 0x58]
fnstsw ax
test ah, 1
jne 0x53cb4c
mov eax, dword [ebp + 0x38]
push dword [ebp + 0x28]
mov dword [ebp + 0x70], edi
mov edi, dword [ebp + 0x34]
mov dword [ebp + 0x38], eax
mov eax, dword [edi + 4]
call fcn.00523fb1
fld qword [0x618b08]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 0x10]
pop ecx
lea ecx, [eax + 0x10]
test edi, edi
je 0x53cb3b
test byte [ecx + 2], 2
jne 0x53cb2a
mov eax, dword [ebx + 0x18]
and eax, dword [ecx + 0x10]
mov esi, dword [ebx + 0x1c]
and esi, dword [ecx + 0x14]
cmp eax, dword [ebp - 0x24]
jne 0x53cb2a
cmp esi, edx
jne 0x53cb2a
movzx eax, word [ecx]
test al, 0x83
je 0x53cafd
cmp dword [ebp + 0x70], 0
je 0x53caf2
dec dword [ebp + 0x70]
jmp 0x53cb2a
fld qword [ebp + 0x48]
fdiv qword [0x617530]
jmp 0x53cb27
test al, 0x3c
je 0x53cb17
cmp dword [ebp + 0x38], 0
je 0x53cb0c
dec dword [ebp + 0x38]
jmp 0x53cb2a
fld qword [ebp + 0x48]
fdiv qword [0x618b10]
jmp 0x53cb27
test eax, 0x800
jne 0x53cb2a
fld qword [ebp + 0x48]
fmul qword [0x609228]
fstp qword [ebp + 0x48]
fcom qword [ebp + 0x48]
mov esi, dword [ebp + 0x30]
dec edi
add ecx, 0x28
fnstsw ax
test ah, 5
jnp 0x53cac1
fcom qword [ebp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x53cb4a
fstp qword [ebp + 0x48]
jmp 0x53cb4c
fstp st(0)
cmp dword [ebp + 0x68], 0
je 0x53cb58
cmp dword [ebp + 0x40], 0
je 0x53cb81
mov ecx, dword [ebp + 0x14]
lea edx, [ebp + 0x40]
call fcn.00523f23
test eax, eax
je 0x53cb81
mov eax, dword [ebp + 0x14]
push 0xa
mov edi, eax
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
and dword [eax], ecx
mov eax, dword [ebp + 0x68]
mov esi, dword [ebp + 0x30]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x44], 0
jne 0x53cba8
mov esi, dword [esi + 0x14]
mov eax, dword [ebp]
mov dword [ebp + 8], 0xffffcfff
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x68], esi
test esi, esi
jne 0x53c597
cmp dword [ebx + 0x20], 0
jne 0x53cbc7
mov eax, dword [ebp + 4]
mov eax, dword [eax]
test dword [eax + 0x18], 0x10000
je 0x53cbc7
mov edi, dword [ebp + 0x14]
or dword [edi], 0x1000000
jmp 0x53cbca
mov edi, dword [ebp + 0x14]
push ebx
call fcn.0053fa09
pop ecx
mov esi, ebx
call fcn.0052a5a9
mov eax, dword [ebp + 0x18]
or dword [edi], eax
pop edi
pop esi
add ebp, 0x78
leave
ret