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

Disassembly:
sub esp, 0x114
mov edx, dword [esp + 0x118]
push ebx
mov ebx, dword [edx + 0xc]
push ebp
push esi
push edi
mov ecx, ebx
mov byte [esp + 0x17], 1
mov dword [esp + 0x34], ebx
call fcn.0053b5e0
mov ecx, dword [edx + 0x58]
or esi, 0xffffffff
test ecx, ecx
je 0x52e303
mov si, word [ecx]
jmp 0x52e315
mov ecx, dword [edx + 0x54]
cmp ecx, 0xffffffff
je 0x52e315
shl ecx, 4
mov si, word [ecx + 0x6d3078]
mov cx, word [edx + 0x10]
mov word [esp + 0x30], cx
cmp dword [0x7b2a0c], 0xffff0101
jae 0x52e347
mov ecx, dword [ebx + 0x64]
test ecx, ecx
je 0x52eeb6
mov edx, dword [ecx + 0x70]
test edx, edx
jne 0x52e35d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret
mov ecx, dword [ebx + 0x58]
test ecx, ecx
je 0x52eeb6
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x52eeb6
movsx esi, si
movsx eax, ax
lea edx, [esi + esi*2]
lea ecx, [eax + edx*2]
movsx edx, word [ecx*2 + 0x697ee0]
mov eax, dword [edx*8 + 0x697c00]
mov ecx, dword [0x70eda0]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x170]
test eax, eax
jge 0x52e391
mov byte [esp + 0x17], 0
mov ecx, dword [0x70eda0]
mov edx, dword [ecx]
lea eax, [esi + esi*2]
mov eax, dword [eax*4 + 0x6db130]
push eax
push ecx
call dword [edx + 0x15c]
test eax, eax
jge 0x52e3b4
mov byte [esp + 0x17], 0
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x1ac]
test eax, eax
jge 0x52e3cd
mov byte [esp + 0x17], 0
mov eax, dword [ebx + 0x48]
xor ebp, ebp
test eax, eax
jle 0x52e440
xor eax, eax
jmp 0x52e3e0
mov esi, dword [esp + 0x128]
mov edx, dword [ebx + 0x4c]
shl eax, 4
mov ecx, 0x2a
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x86cff4]
mov dword [esp + 0x110], 0xffffffff
mov eax, dword [eax + edx + 0xc]
and eax, 0xffff
shl eax, 5
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [esp + 0x12c]
push eax
lea ecx, [esp + 0x7c]
push ecx
mov dword [esp + 0x8c], edx
call fcn.0052f0e0
mov ecx, dword [ebx + 0x48]
add esp, 8
inc ebp
movsx eax, bp
cmp eax, ecx
jl 0x52e3e0
mov eax, dword [0x70eda0]
mov edx, dword [eax]
xor ecx, ecx
mov cl, byte [ebx + 0x29]
shr ecx, 1
not ecx
and ecx, 2
or ecx, 1
push ecx
push 0x16
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 7
push 0xa8
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
xor ecx, ecx
mov cl, byte [ebx + 0x29]
and ecx, 1
push ecx
push 0xf
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 0x7f
push 0x18
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0
push 0x1c
push eax
call dword [ecx + 0xe4]
mov cx, word [ebx + 0x2c]
call fcn.005140e0
mov al, byte [ebx + 0x29]
test al, al
jns 0x52e629
mov eax, dword [esp + 0x128]
mov edx, dword [eax + 0x74]
test edx, edx
je 0x52e629
mov ecx, dword [ebx + 0x54]
test ecx, ecx
jle 0x52e629
mov ecx, dword [ebx + 0x58]
mov ecx, dword [ecx + 0x78]
mov esi, dword [0x86cff4]
and ecx, 0xffff
shl ecx, 5
mov ecx, dword [ecx + esi + 0x14]
mov bp, word [ecx + 0x60]
test byte [ebx + 0x6c], 2
je 0x52e52a
movsx eax, word [eax + 0x10]
call fcn.0053b940
mov dword [esp + 0x30], eax
jmp 0x52e629
movzx cx, byte [ebx + 0x28]
mov edx, dword [edx + 4]
xor eax, eax
cmp bp, 8
setne al
movsx edi, cx
mov dword [esp + 0x1c], edi
sub esp, 8
fild dword [esp + 0x24]
dec eax
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
and eax, 3
movsx esi, ax
shl esi, 2
fmul dword [edx + esi]
fadd dword [0x66c408]
fstp qword [esp]
call fcn.0061f4e0
fstp dword [esp + 0x24]
add esp, 8
fld dword [esp + 0x1c]
fistp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
test eax, eax
jge 0x52e587
xor eax, eax
jmp 0x52e5fd
mov eax, dword [esp + 0x128]
fld dword [esp + 0x18]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + 4]
fmul dword [edx + esi]
sub esp, 8
fadd dword [0x66c408]
fstp qword [esp]
call fcn.0061f4e0
fstp dword [esp + 0x24]
add esp, 8
fld dword [esp + 0x1c]
fistp dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x52e5c5
mov eax, edi
jmp 0x52e5fd
mov eax, dword [esp + 0x128]
fld dword [esp + 0x18]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + 4]
fmul dword [edx + esi]
sub esp, 8
fadd dword [0x66c408]
fstp qword [esp]
call fcn.0061f4e0
fstp dword [esp + 0x24]
add esp, 8
fld dword [esp + 0x1c]
fistp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x128]
mov cx, word [ecx + 0x10]
test cx, cx
jle 0x52e61c
movsx esi, bp
movzx ecx, cx
movsx eax, ax
cdq
idiv esi
dec ecx
jne 0x52e613
movsx eax, ax
movsx ecx, bp
cdq
idiv ecx
mov dword [esp + 0x30], edx
mov eax, dword [0x7b2a0c]
xor esi, esi
cmp eax, 0xffff0101
jae 0x52e65f
mov si, word [ebx + 0x60]
test si, si
mov dword [esp + 0x24], esi
jle 0x52e683
mov eax, dword [ebx + 0x64]
lea ecx, [esp + 0x68]
movzx edx, si
mov edi, edi
mov dword [ecx], eax
add eax, 0xdc
add ecx, 4
dec edx
jne 0x52e650
jmp 0x52e683
mov si, word [ebx + 0x54]
test si, si
mov dword [esp + 0x24], esi
jle 0x52e683
mov eax, dword [ebx + 0x58]
lea ecx, [esp + 0x68]
movzx edx, si
mov dword [ecx], eax
add eax, 0xdc
add ecx, 4
dec edx
jne 0x52e676
xor edi, edi
test si, si
mov dword [esp + 0x1c], edi
jle 0x52e971
cmp di, word [esp + 0x24]
jge 0x52e91e
xor eax, eax
test di, di
mov ax, word [ebx + 0x2a]
movsx esi, di
mov ebp, dword [esp + esi*4 + 0x68]
mov dword [esp + 0x20], eax
je 0x52e6bd
mov dword [esp + 0x18], 0
jmp 0x52e6cd
movsx edx, ax
mov ax, word [edx*2 + 0x659290]
mov word [esp + 0x18], ax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x78]
push ecx
push 0
push edx
push edi
call fcn.00514470
add esp, 0x10
cmp word [esp + 0x18], 0
jne 0x52e6fa
test byte [ebp], 4
je 0x52e6fa
mov ecx, 3
jmp 0x52e71a
test di, di
je 0x52e706
mov ecx, 1
jmp 0x52e712
movsx eax, word [esp + 0x20]
mov ecx, dword [eax*4 + 0x659298]
cmp word [esp + 0x18], 0
jne 0x52e72a
test byte [ebp], 8
je 0x52e72a
mov dword [esp + 0x18], 3
jmp 0x52e749
test di, di
je 0x52e739
mov dword [esp + 0x18], 1
jmp 0x52e749
movsx edx, word [esp + 0x20]
mov eax, dword [edx*4 + 0x659298]
mov dword [esp + 0x18], eax
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ecx
push 1
push esi
push eax
call dword [edx + 0x114]
mov edx, dword [esp + 0x18]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edx
push 2
push esi
push eax
call dword [ecx + 0x114]
test di, di
je 0x52e77d
mov ecx, 1
jmp 0x52e789
movsx eax, word [esp + 0x20]
mov ecx, dword [eax*4 + 0x659298]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ecx
push 3
push esi
push eax
call dword [edx + 0x114]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 5
push esi
push eax
call dword [ecx + 0x114]
mov cl, byte [ebp]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
and cl, 1
neg cl
sbb ecx, ecx
add ecx, 2
push ecx
push 6
push esi
push eax
call dword [edx + 0x114]
mov cl, byte [ebp]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
and cl, 1
neg cl
sbb ecx, ecx
add ecx, 2
push ecx
push 7
push esi
push eax
call dword [edx + 0x114]
xor ecx, ecx
test di, di
jg 0x52e7fd
cmp word [ebx + 0x2a], cx
jne 0x52e8bd
cmp di, cx
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x58]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
jne 0x52e839
test byte [ebx + 0x29], 0x40
je 0x52e83b
fld dword [esp + 0x28]
mov eax, dword [esp + 0x128]
fmul dword [eax + 0x78]
fchs
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [eax + 0x78]
fchs
fstp dword [esp + 0x2c]
jmp 0x52e842
jg 0x52e84a
mov eax, dword [esp + 0x128]
test byte [ebx + 0x29], 8
jne 0x52e867
jmp 0x52e851
mov eax, dword [esp + 0x128]
fld dword [esp + 0x28]
fmul dword [eax + 0x3c]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [eax + 0x40]
fstp dword [esp + 0x2c]
fld qword [0x7b2a80]
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x64]
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x138]
shl esi, 5
push ecx
mov ecx, dword [eax + 0x74]
lea edi, [esp + esi + 0x9c]
lea ebx, [esp + esi + 0x8c]
push edx
lea esi, [ebp + 0xa4]
call fcn.0053b6d0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
add esp, 0x18
jmp 0x52e95d
test byte [ebx + 0x29], 8
je 0x52e920
fld dword [0x7b2b44]
shl esi, 5
fstp dword [esp + esi + 0x78]
mov dword [esp + esi + 0x84], ecx
fld dword [0x7b2b48]
mov dword [esp + esi + 0x94], ecx
fstp dword [esp + esi + 0x7c]
fld dword [0x7b2b4c]
fstp dword [esp + esi + 0x80]
fld dword [0x7b2b50]
fstp dword [esp + esi + 0x88]
fld dword [0x7b2b54]
fstp dword [esp + esi + 0x8c]
fld dword [0x7b2b58]
fstp dword [esp + esi + 0x90]
jmp 0x52e95d
xor ecx, ecx
movsx eax, di
shl eax, 5
mov edx, 0x3f800000
mov dword [esp + eax + 0x78], edx
mov dword [esp + eax + 0x7c], ecx
mov dword [esp + eax + 0x80], ecx
mov dword [esp + eax + 0x84], ecx
mov dword [esp + eax + 0x88], ecx
mov dword [esp + eax + 0x8c], edx
mov dword [esp + eax + 0x90], ecx
mov dword [esp + eax + 0x94], ecx
inc edi
cmp di, word [esp + 0x24]
mov dword [esp + 0x1c], edi
jl 0x52e69d
mov esi, dword [esp + 0x24]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 8
lea edx, [esp + 0x7c]
push edx
push 0xd
push eax
call dword [ecx + 0x178]
test eax, eax
jl 0x52e9a5
mov al, byte [esp + 0x17]
test al, al
je 0x52e9a5
mov edi, dword [esp + 0x128]
mov ecx, dword [edi + 0xc]
call fcn.005335f0
jmp 0x52e9ac
mov edi, dword [esp + 0x128]
test byte [edi], 0x10
je 0x52e9bc
cmp word [ebx + 0x2c], 0
je case.default.0x52eaf9
cmp word [edi + 0x14], 1
mov cx, word [ebx + 0x30]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0x3f800000
mov dword [esp + 0x64], 0
jne 0x52ea66
test byte [ebx + 0x6c], 1
jne 0x52ea66
fld dword [0x66c410]
fsub dword [edi + 0x18]
fcom dword [0x66c40c]
fnstsw ax
test ah, 5
jp 0x52ea4d
fstp st(0)
fld dword [0x66c40c]
jmp 0x52ea62
fcom dword [0x66c410]
fnstsw ax
test ah, 0x41
jne 0x52ea62
fstp st(0)
fld dword [0x66c410]
fstp dword [esp + 0x60]
test cx, cx
jle 0x52eaad
mov eax, dword [edi + 0x74]
test eax, eax
je 0x52eaad
mov eax, dword [eax + 4]
test eax, eax
je 0x52eaad
movsx ecx, cx
fld dword [eax + ecx*4 - 4]
lea ecx, [eax + ecx*4 - 4]
fld dword [0x66c40c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x52eaa3
cmp dword [0x7b2a0c], 0xffff0101
jb 0x52eeb6
fld dword [esp + 0x60]
fmul dword [ecx]
fstp dword [esp + 0x60]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 3
lea ecx, [esp + 0x3c]
push ecx
push 0xa
push eax
call dword [edx + 0x178]
movsx eax, word [ebx + 0x2e]
sub eax, 0
je 0x52eae1
dec eax
je 0x52eada
dec eax
jne 0x52eae8
mov edi, 4
jmp 0x52eaec
mov edi, 0x24
jmp 0x52eaec
mov edi, 0x20
jmp 0x52eaec
mov edi, dword [esp + 0x34]
movsx eax, word [ebx + 0x2c]
cmp eax, 7
ja case.default.0x52eaf9
jmp dword [eax*4 + 0x52eec4]
cmp dword [0x7b29d8], 2
jne 0x52eb3d
cmp si, 2
jl 0x52eb3d
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x52eb1f
mov esi, 1
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
push edi
push 6
push 0
jmp 0x52ee47
mov esi, dword [esp + 0x24]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
movsx ebp, si
push 1
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 4
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 5
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 6
push ebp
push eax
call dword [edx + 0x10c]
jmp 0x52ee55
cmp dword [0x7b29d8], 2
ja 0x52ebc0
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x52ebc0
mov esi, 1
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0x19
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
mov ecx, edi
or ecx, 0x10
push ecx
push 2
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 3
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edi
push 0x1a
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [edx + 0x10c]
push 1
push 5
push ebp
jmp 0x52ee47
cmp dword [0x7b29d8], 2
ja 0x52ec48
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x52ec48
mov esi, 1
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 0x7f7f7f7f
push 0x3c
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0x1a
movsx ebx, si
push 1
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 2
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 3
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 3
push 0x1a
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 4
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 5
push ebx
push eax
call dword [edx + 0x10c]
jmp 0x52ee55
cmp dword [0x7b29d8], 2
jne 0x52ed21
cmp si, 2
jl 0x52ed21
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x52ecf5
mov esi, 1
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 3
push 0
push eax
call dword [edx + 0x10c]
jmp 0x52ee55
mov esi, dword [esp + 0x24]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 4
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edi
push 3
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [edx + 0x10c]
push 1
push 5
push ebp
jmp 0x52ee47
cmp dword [0x7b29d8], 2
jne 0x52edde
cmp si, 2
jl 0x52edde
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x52ed9c
mov esi, 1
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edi
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
push edi
push 6
push 0
jmp 0x52ee47
mov esi, dword [esp + 0x24]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
movsx ebx, si
push 1
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 2
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 3
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 4
push 4
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 5
push ebx
push eax
call dword [edx + 0x10c]
push edi
push 6
push ebx
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
inc esi
mov eax, dword [0x70eda0]
mov edx, dword [eax]
movsx esi, si
push 0
push esi
push eax
call dword [edx + 0x104]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 1
push esi
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 4
push esi
push eax
call dword [edx + 0x10c]
mov ecx, dword [esp + 0x128]
push 0
call fcn.0052eef0
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
add esp, 4
push 1
push 0xab
push eax
call dword [ecx + 0xe4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret