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

Disassembly:
sub esp, 0x14
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x68]
push ebx
mov ebx, dword [ecx]
push ebp
mov ebp, dword [eax + 0x14]
push edi
push ebx
xor edi, edi
call fcn.1000b500
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
add esp, 4
test ecx, ecx
je 0x100232cd
mov eax, dword [esp + 0x6c]
sub eax, ebx
sub eax, 1
mov dword [esp + 0x1c], eax
je 0x10022ada
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
lea edi, [edx + eax - 2]
fldz
push esi
fld dword [esp + 0x4c]
add ecx, edi
fucom st(1)
mov esi, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x10], ecx
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x10022b06
mov edx, dword [esp + 0x5c]
cmp edx, dword [esp + 0x60]
jne 0x10022b06
xor edx, edx
jmp 0x10022b20
cmp ecx, 3
jg 0x10022b13
mov edx, ecx
mov dword [esp + 0x1c], ecx
jmp 0x10022b24
lea eax, [ecx - 1]
cdq
mov ecx, 3
idiv ecx
add edx, ecx
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
sub eax, edx
cmp edi, eax
mov edi, dword [esp + 0x58]
mov dword [esp + 0x18], eax
jge 0x10022ca7
fstp st(0)
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
sub eax, 0
je 0x10022d9f
sub eax, 1
je 0x10022cba
sub eax, 1
jne 0x10022c99
cmp byte [edi + 0xc], al
je 0x10022b6f
cmp esi, 0xa
jl 0x10022b6f
mov byte [ebp + 0xd], 8
mov esi, dword [esp + 0x78]
fld dword [esp + 0x14]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x44]
push ebx
push esi
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x54]
push ecx
push edx
push ecx
mov ecx, dword [esp + 0x58]
fstp dword [esp]
push eax
push ecx
mov ecx, dword [esp + 0x58]
call fcn.1001c090
fld dword [esp + 0x40]
mov eax, dword [esp + 0x74]
fmul qword [0x100890b8]
add dword [eax], 0xffffffff
add esp, 0x2c
mov eax, edi
fstp dword [esp + 0x14]
call fcn.10020c30
mov edx, dword [esp + 0x68]
add dword [esp + 0x6c], 1
mov dword [edx], 0
cmp byte [edi + 0xe], 0
jne 0x10022bfe
cmp byte [edi + 0xc], 0
je 0x10022bfe
mov esi, dword [esp + 0x6c]
cmp esi, 0xa
jl 0x10022c02
cmp esi, dword [esp + 0x10]
jge 0x10022c02
add dword [esp + 0x74], 4
jmp 0x10022c02
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 8]
add eax, 2
imul eax, ebx
add eax, eax
add eax, eax
push eax
push 0
push edx
call fcn.10059918
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push ebx
push eax
push ecx
call fcn.10036be9
add esp, 0x18
cmp byte [edi + 0xd], 0
je 0x10022c42
mov ecx, dword [esp + 0x78]
call fcn.1000b5f0
cmp byte [edi + 0xe], 0
jne 0x10022c53
cmp byte [edi + 0xc], 0
je 0x10022c95
cmp esi, 0xa
jl 0x10022c95
cmp esi, dword [esp + 0x10]
mov eax, dword [ebp + 4]
mov dword [ebp], eax
jge 0x10022c95
mov edx, dword [esp + 0x74]
mov ecx, dword [edx]
push ecx
push eax
mov ecx, ebp
call fcn.1000a263
add dword [esp + 0x74], 4
cmp byte [edi + 0xc], 0
je 0x10022c8c
cmp esi, 9
jle 0x10022c8c
cmp esi, 0xa
jl 0x10022c95
mov eax, dword [esp + 0x68]
cmp dword [eax], 2
jne 0x10022c95
mov ecx, dword [esp + 0x78]
call fcn.10009e30
mov esi, dword [esp + 0x6c]
cmp esi, dword [esp + 0x18]
jl 0x10022b40
fld dword [esp + 0x4c]
cmp esi, dword [esp + 0x10]
jge 0x100232ca
mov esi, dword [esp + 0x64]
jmp 0x10022eb4
cmp byte [edi + 0xc], 0
je 0x10022d06
cmp esi, 0xa
jl 0x10022d06
cmp byte [edi + 0xe], 0
je 0x10022ccf
mov byte [ebp + 0xd], 8
mov ecx, dword [esp + 0x64]
fld dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
push ebx
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
push ecx
push ecx
fstp dword [esp]
push edx
push eax
mov eax, dword [esp + 0x50]
mov edx, ebp
call fcn.10021e80
add esp, 0x20
jmp 0x10022d47
mov ecx, dword [esp + 0x78]
fld dword [esp + 0x14]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
push ebx
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x60]
push ecx
push edx
mov edx, dword [esp + 0x50]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x58]
call fcn.1001a7d0
add esp, 0x28
add esi, 1
cmp byte [edi + 0xd], 0
mov dword [esp + 0x6c], esi
je 0x10022d5d
mov ecx, dword [esp + 0x78]
call fcn.1000b5f0
cmp byte [edi + 0xe], 0
jne 0x10022d8a
cmp byte [edi + 0xc], 0
je 0x10022d6e
cmp esi, 0xa
jge 0x10022d8a
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
add eax, 1
cdq
mov ecx, 3
idiv ecx
mov eax, dword [esp + 0x68]
mov dword [eax], edx
jmp 0x10022c99
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x68]
mov dword [ebp], ecx
mov dword [edx], 2
jmp 0x10022e5c
cmp byte [edi + 0xc], 0
je 0x10022deb
cmp esi, 0xa
jl 0x10022deb
mov eax, dword [esp + 0x64]
fld dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
push ebx
push eax
mov eax, dword [esp + 0x58]
push ecx
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x54]
fstp dword [esp]
push ecx
mov esi, ebp
mov byte [ebp + 0xd], 8
call fcn.10020cb0
mov esi, dword [esp + 0x88]
add esp, 0x1c
jmp 0x10022e2c
mov edx, dword [esp + 0x78]
fld dword [esp + 0x14]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
push ebx
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x54]
push ecx
push edx
mov edx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x50]
fstp dword [esp]
push eax
call fcn.100183e0
add esp, 0x28
add esi, 1
cmp byte [edi + 0xd], 0
mov dword [esp + 0x6c], esi
je 0x10022e42
mov ecx, dword [esp + 0x78]
call fcn.1000b5f0
cmp byte [edi + 0xe], 0
je 0x10022d6e
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x68]
mov dword [ebp], ecx
mov dword [edx], 1
cmp esi, dword [esp + 0x10]
jge 0x10022c99
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov ecx, dword [ebp]
push eax
push ecx
mov ecx, ebp
call fcn.1000a263
add dword [esp + 0x74], 4
cmp byte [edi + 0xc], 0
je 0x10022e9e
cmp esi, 9
jle 0x10022e9e
cmp esi, 0xa
jl 0x10022c99
mov edx, dword [esp + 0x68]
cmp dword [edx], 2
jne 0x10022c99
mov ecx, dword [esp + 0x78]
call fcn.10009e30
jmp 0x10022c99
fld dword [esp + 0x4c]
mov ecx, dword [esp + 0x68]
fld1
mov eax, dword [ecx]
sub eax, 0
je 0x10023187
sub eax, 1
je 0x10023037
sub eax, 1
jne 0x100232b0
cmp byte [edi + 0xc], al
fld dword [esp + 0x14]
fld st(0)
fsubrp st(2)
fxch st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x18]
je 0x10022ef9
cmp dword [esp + 0x6c], 0xa
jl 0x10022ef9
mov byte [ebp + 0xd], 8
mov esi, dword [esp + 0x78]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push ebx
push esi
push edx
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x54]
push edx
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push eax
push ecx
mov ecx, dword [esp + 0x60]
call fcn.1001e710
fld dword [esp + 0x48]
mov eax, dword [esp + 0x7c]
fmul qword [0x100890b8]
add dword [eax], 0xffffffff
add esp, 0x34
mov eax, edi
fstp dword [esp + 0x14]
call fcn.10020c30
mov edx, dword [esp + 0x68]
add dword [esp + 0x6c], 1
mov dword [edx], 0
cmp byte [edi + 0xe], 0
jne 0x10022f93
cmp byte [edi + 0xc], 0
je 0x10022f93
mov esi, dword [esp + 0x6c]
cmp esi, 0xa
jl 0x10022f97
cmp esi, dword [esp + 0x10]
jge 0x10022f97
add dword [esp + 0x74], 4
jmp 0x10022f97
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 8]
add eax, 2
imul eax, ebx
add eax, eax
add eax, eax
push eax
push 0
push edx
call fcn.10059918
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push ebx
push eax
push ecx
call fcn.10036be9
add esp, 0x18
cmp byte [edi + 0xd], 0
je 0x10022fd7
mov ecx, dword [esp + 0x78]
call fcn.1000b5f0
cmp byte [edi + 0xe], 0
jne 0x10022fe8
cmp byte [edi + 0xc], 0
je 0x1002302e
cmp esi, 0xa
jl 0x1002302e
cmp esi, dword [esp + 0x10]
mov eax, dword [ebp + 4]
mov dword [ebp], eax
jge 0x100232cc
mov edx, dword [esp + 0x74]
mov ecx, dword [edx]
push ecx
push eax
mov ecx, ebp
call fcn.1000a263
add dword [esp + 0x74], 4
cmp byte [edi + 0xc], 0
je 0x10023025
cmp esi, 9
jle 0x10023025
cmp esi, 0xa
jl 0x1002302e
mov eax, dword [esp + 0x68]
cmp dword [eax], 2
jne 0x1002302e
mov ecx, dword [esp + 0x78]
call fcn.10009e30
mov esi, dword [esp + 0x64]
jmp 0x100232b4
cmp dword [esp + 0x1c], 5
fld dword [esp + 0x14]
fld st(0)
fsub st(2)
fmul st(3)
fstp dword [esp + 0x18]
jne 0x10023059
mov ecx, dword [esp + 0x10]
add ecx, 0xffffffff
cmp dword [esp + 0x6c], ecx
je 0x10023067
cmp dword [esp + 0x10], 3
jne 0x10023081
cmp dword [esp + 0x20], 0
jne 0x10023081
fld dword [esp + 0x18]
fld st(1)
fadd st(0), st(0)
fsubrp st(3)
fxch st(2)
fmulp st(3)
fxch st(1)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x18]
jmp 0x10023085
fstp st(2)
fstp st(0)
cmp byte [edi + 0xc], 0
je 0x100230d8
cmp dword [esp + 0x6c], 0xa
jl 0x100230d8
cmp byte [edi + 0xe], 0
je 0x1002309c
mov byte [ebp + 0xd], 8
mov edx, dword [esp + 0x60]
fld dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
push ebx
push ebp
push esi
push edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x50]
push ecx
push edx
mov edx, dword [esp + 0x54]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push eax
mov eax, dword [esp + 0x58]
call fcn.10022450
add esp, 0x28
jmp 0x10023121
mov ecx, dword [esp + 0x78]
fld dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
push ebx
push ecx
mov ecx, dword [esp + 0x48]
push esi
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x58]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push ecx
push edx
push eax
mov eax, dword [esp + 0x60]
call fcn.1001b3e0
add esp, 0x34
mov eax, dword [esp + 0x6c]
add eax, 1
cmp byte [edi + 0xd], 0
mov dword [esp + 0x6c], eax
je 0x1002313f
mov ecx, dword [esp + 0x78]
call fcn.1000b5f0
mov eax, dword [esp + 0x6c]
cmp byte [edi + 0xe], 0
jne 0x1002316c
cmp byte [edi + 0xc], 0
je 0x10023150
cmp eax, 0xa
jge 0x1002316c
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
add eax, 1
cdq
mov ecx, 3
idiv ecx
mov eax, dword [esp + 0x68]
mov dword [eax], edx
jmp 0x100232b4
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x68]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx], 2
cmp eax, ecx
jmp 0x10023262
cmp byte [edi + 0xc], 0
fld dword [esp + 0x14]
fld st(0)
fsubrp st(2)
fxch st(1)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x18]
je 0x100231e6
cmp dword [esp + 0x6c], 0xa
jl 0x100231e6
mov eax, dword [esp + 0x60]
fld dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
push ebx
push ebp
push esi
push eax
mov eax, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x48]
sub esp, 8
fstp dword [esp + 4]
mov byte [ebp + 0xd], 8
fstp dword [esp]
push ecx
call fcn.10021560
add esp, 0x28
jmp 0x1002322e
mov edx, dword [esp + 0x78]
fld dword [esp + 0x18]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push ebx
push edx
mov edx, dword [esp + 0x4c]
push esi
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x58]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push eax
call fcn.100195a0
add esp, 0x30
add dword [esp + 0x6c], 1
cmp byte [edi + 0xd], 0
je 0x10023242
mov ecx, dword [esp + 0x78]
call fcn.1000b5f0
cmp byte [edi + 0xe], 0
je 0x100232a5
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x68]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx], 1
cmp ecx, eax
je 0x100232b4
jge 0x100232cc
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov ecx, dword [ebp]
push eax
push ecx
mov ecx, ebp
call fcn.1000a263
add dword [esp + 0x74], 4
cmp byte [edi + 0xc], 0
je 0x1002329a
mov eax, dword [esp + 0x6c]
cmp eax, 9
jle 0x1002329a
cmp eax, 0xa
jl 0x100232b4
mov edx, dword [esp + 0x68]
cmp dword [edx], 2
jne 0x100232b4
mov ecx, dword [esp + 0x78]
call fcn.10009e30
jmp 0x100232b4
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
jmp 0x10023156
fstp st(1)
fstp st(0)
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x6c], ecx
jl 0x10022eb0
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x14
ret
fstp st(0)
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x14
ret