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

Disassembly:
sub esp, 0x5c
mov edx, dword [ecx + 8]
push ebx
mov ebx, dword [esp + 0x70]
push ebp
push esi
mov esi, dword [esp + 0x8c]
push edi
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
mov eax, dword [esi + 8]
mov dword [esp + 0x18], eax
mov al, byte [esi + 0xc]
mov byte [esp + 0x12], al
mov eax, dword [esi + 0x10]
add ebx, 3
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
sar ebx, 2
mov ebp, 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], ebp
je 0x1002395d
mov ecx, dword [esp + 0x94]
fld dword [esp + 0x74]
lea eax, [edi + ecx]
mov dword [esp + 0x58], eax
jmp 0x10023403
mov edi, dword [esp + 0x2c]
lea eax, [ebx - 1]
cmp ebp, eax
jae 0x10023414
mov dword [esp + 0x28], 4
jmp 0x10023428
mov eax, dword [esp + 0x7c]
lea ecx, [ebx*4]
sub eax, ecx
add eax, 4
mov dword [esp + 0x28], eax
mov cl, byte [edi + ebp]
mov eax, dword [esp + 0x58]
mov al, byte [eax + ebp]
xor edi, edi
cmp dword [esp + 0x78], edi
mov dword [esp + 0x30], edi
jbe 0x10023948
jmp 0x1002344c
mov cl, byte [esp + 0x10]
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x2c]
mov bl, al
lea eax, [edi + 2]
imul eax, dword [esp + 0x94]
add eax, ebp
mov byte [esp + 0x10], bl
mov dword [esp + 0x64], eax
mov al, byte [eax + esi]
shr ebx, 3
and ebx, 0xf
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x28]
mov esi, ebx
cmp esi, dword [eax*4 + 0x1009bb9c]
mov byte [esp + 0x15], cl
mov dword [esp + 0x5c], esi
je 0x1002392c
mov bl, cl
or bl, byte [esp + 0x13]
or bl, byte [esp + 0x10]
test bl, 0xfc
mov byte [esp + 0x14], bl
je 0x1002392c
xor ecx, ecx
test eax, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
jbe 0x10023914
jmp 0x100234be
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
cmp byte [eax + esi*4 + 0x1009bbb0], 0
jne 0x100238f8
mov al, byte [ecx + 0x1009bb88]
test bl, al
mov byte [esp + 0x16], al
je 0x100238f8
mov ecx, dword [ecx*4 + 0x1009bb8c]
movzx esi, byte [esp + 0x15]
movzx edi, byte [esp + 0x10]
movzx eax, al
and esi, eax
movzx ecx, cl
shr esi, cl
and edi, eax
shr edi, cl
mov ebx, edx
add esi, esi
add esi, esi
add esi, esi
or esi, edi
movzx edi, byte [esp + 0x13]
and edi, eax
shr edi, cl
mov ecx, dword [esp + 0x80]
add esi, esi
add esi, esi
add esi, esi
or esi, edi
mov eax, dword [ecx + esi*4]
mov ecx, dword [esp + 0x48]
mov edi, dword [ecx]
mov ebp, dword [ecx + 4]
add edi, eax
add ebp, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x1008a3f0]
mov ecx, eax
shr ecx, 0x10
shr ebx, 0x10
cmp ebx, ecx
jb 0x100235a8
sub dword [esp + 0x18], ecx
mov ebx, eax
and ebx, 0xffff0000
sub edx, ebx
mov ebx, dword [esp + 0x18]
test ebx, 0x8000
mov dword [esp + 0x20], edx
je 0x10023575
cmp byte [ebp], 0
setne byte [esp + 0x11]
jmp 0x10023653
cmp ebx, ecx
jb 0x10023587
cmp byte [ebp], 0
setne byte [esp + 0x11]
shr eax, 8
jmp 0x100235e0
mov cl, byte [ebp]
mov bl, cl
xor bl, 1
mov bl, al
setne byte [esp + 0x11]
and bl, 1
xor bl, cl
shr eax, 1
mov byte [ebp], bl
mov ebx, dword [esp + 0x18]
and al, 0x7f
jmp 0x100235e0
lea edx, [ecx + ecx]
cmp dword [esp + 0x18], edx
jae 0x100235bf
cmp byte [ebp], 0
setne byte [esp + 0x11]
shr eax, 8
jmp 0x100235da
mov dl, byte [ebp]
mov bl, dl
xor bl, 1
setne byte [esp + 0x11]
mov bl, al
and bl, 1
xor bl, dl
shr eax, 1
mov byte [ebp], bl
and al, 0x7f
mov edx, dword [esp + 0x20]
mov ebx, ecx
mov ebp, dword [esp + 0x4c]
mov cl, byte [esp + 0x12]
mov byte [edi], al
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x10023630
cmp edi, ebp
je 0x10023625
cmp cl, 0xff
mov cl, byte [edi]
je 0x1002360e
movzx eax, cl
shl eax, 8
add edi, 1
add edx, eax
jmp 0x1002362b
add edi, 1
cmp cl, 0x8f
ja 0x10023625
movzx eax, cl
shl eax, 9
add edx, eax
mov eax, 7
jmp 0x10023630
add edx, 0xff00
mov eax, 8
add ebx, ebx
add edx, edx
sub eax, 1
test ebx, 0x8000
je 0x100235f2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], edi
mov byte [esp + 0x12], cl
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x60]
lea ecx, [edi + 1]
imul ecx, dword [esp + 0x94]
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x40]
mov edx, 0x40
sar edx, cl
mov dword [esp + 0x38], eax
or byte [eax + ebx], dl
cmp byte [esp + 0x11], 0
mov dword [esp + 0x54], edx
je 0x100238f0
mov edx, edi
imul edx, dword [esp + 0x94]
mov edi, dword [esp + 0x50]
mov al, byte [eax + edi]
add edx, ebp
mov bl, byte [edx + edi]
mov edx, dword [esp + 0x64]
mov dl, byte [edx + edi]
mov byte [esp + 0x17], dl
or dl, al
mov byte [esp + 0x11], al
movzx eax, byte [esp + 0x16]
or dl, bl
and esi, 0xaa
test al, dl
je 0x10023702
movzx edi, byte [esp + 0x11]
mov eax, 5
sub eax, ecx
movzx edx, al
movzx eax, bl
mov cl, dl
shr eax, cl
shr edi, cl
and eax, 2
add eax, eax
add eax, eax
and edi, 5
add eax, eax
or eax, edi
movzx edi, byte [esp + 0x17]
shr edi, cl
add eax, eax
add eax, eax
shr edi, 1
and edi, 1
or eax, edi
or eax, esi
jmp 0x10023704
mov eax, esi
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + eax*4]
mov edx, dword [esp + 0x48]
mov edi, dword [edx]
mov esi, dword [edx + 4]
mov cl, al
shr eax, 1
movzx edx, byte [edi + eax]
add edi, eax
add esi, eax
mov eax, dword [edx*4 + 0x1008a3f0]
mov edx, dword [esp + 0x20]
mov ebp, eax
mov ebx, edx
shr ebp, 0x10
shr ebx, 0x10
and cl, 1
cmp ebx, ebp
jb 0x100237a0
sub dword [esp + 0x18], ebp
mov ebx, eax
and ebx, 0xffff0000
sub edx, ebx
mov ebx, dword [esp + 0x18]
test ebx, 0x8000
mov dword [esp + 0x20], edx
je 0x1002376b
mov al, byte [esi]
xor al, cl
setne byte [esp + 0x11]
jmp 0x1002384e
cmp ebx, ebp
mov bl, byte [esi]
mov ebp, dword [esp + 0x18]
jb 0x10023781
xor bl, cl
setne byte [esp + 0x11]
shr eax, 8
jmp 0x100237d5
mov byte [esp + 0x17], bl
xor bl, cl
xor bl, 1
setne byte [esp + 0x11]
mov cl, al
and cl, 1
xor cl, byte [esp + 0x17]
shr eax, 1
mov byte [esi], cl
and al, 0x7f
jmp 0x100237d5
lea edx, [ebp + ebp]
cmp dword [esp + 0x18], edx
mov dl, byte [esi]
jae 0x100237b8
xor dl, cl
setne byte [esp + 0x11]
shr eax, 8
jmp 0x100237d1
mov bl, dl
xor bl, cl
xor bl, 1
setne byte [esp + 0x11]
mov cl, al
and cl, 1
xor cl, dl
shr eax, 1
mov byte [esi], cl
and al, 0x7f
mov edx, dword [esp + 0x20]
mov byte [edi], al
mov al, byte [esp + 0x12]
mov edi, dword [esp + 0x4c]
mov esi, 8
lea ebx, [esi - 7]
cmp dword [esp + 0x1c], 0
jne 0x10023832
mov ecx, dword [esp + 0x24]
cmp ecx, edi
je 0x10023828
cmp al, 0xff
mov al, byte [ecx]
je 0x1002380c
add ecx, ebx
mov dword [esp + 0x24], ecx
movzx ecx, al
shl ecx, 8
add edx, ecx
jmp 0x1002382e
add ecx, ebx
cmp al, 0x8f
mov dword [esp + 0x24], ecx
ja 0x10023828
movzx ecx, al
shl ecx, 9
add edx, ecx
mov dword [esp + 0x1c], 7
jmp 0x10023832
add edx, 0xff00
mov dword [esp + 0x1c], esi
sub dword [esp + 0x1c], ebx
add ebp, ebp
add edx, edx
test ebp, 0x8000
je 0x100237e7
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebp
mov byte [esp + 0x12], al
mov al, byte [esp + 0x54]
mov ecx, dword [esp + 0x40]
or byte [esp + 0x10], al
cmp ecx, 3
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
jne 0x1002387b
mov eax, dword [esp + 0x44]
add eax, 0xffffffff
cmp ebp, eax
je 0x1002387b
mov eax, dword [esp + 0x2c]
or byte [edi + eax + 1], 0x80
mov bl, byte [esp + 0x14]
or bl, byte [esp + 0x10]
cmp byte [esp + 0x11], 0
mov byte [esp + 0x14], bl
je 0x100238d3
mov esi, dword [esp + 0x50]
mov al, byte [esp + 0x54]
or byte [edi + esi], al
cmp ecx, 3
jne 0x100238b2
mov eax, dword [esp + 0x44]
add eax, 0xffffffff
cmp ebp, eax
je 0x100238b2
or byte [edi + esi + 1], 0x80
lea eax, [edi + esi + 1]
mov edi, dword [esp + 0x30]
fld st(0)
mov esi, dword [esp + 0x88]
fchs
lea eax, [ecx + ebp*4]
imul eax, dword [esp + 0x8c]
add eax, edi
fstp dword [esi + eax*4]
jmp 0x100238f8
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x88]
lea eax, [ecx + ebp*4]
imul eax, dword [esp + 0x8c]
add eax, edi
fst dword [esi + eax*4]
jmp 0x100238f8
mov bl, byte [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
add eax, 1
add ecx, 1
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
jb 0x100234ba
mov al, byte [esp + 0x10]
mov esi, dword [esp + 0x2c]
lea ecx, [edi + 1]
imul ecx, dword [esp + 0x94]
add ecx, ebp
mov byte [ecx + esi], al
add edi, 1
cmp edi, dword [esp + 0x78]
mov dword [esp + 0x30], edi
jb 0x10023444
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x90]
add ebp, 1
cmp ebp, ebx
mov dword [esp + 0x34], ebp
jb 0x100233ff
mov ecx, dword [esp + 0x24]
fstp st(0)
mov eax, dword [esp + 0x18]
mov dword [esi + 8], eax
mov al, byte [esp + 0x12]
mov byte [esi + 0xc], al
mov dword [esi + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x14]
mov eax, ecx
sub eax, dword [esp + 0x68]
pop edi
mov dword [edx + 8], eax
mov eax, dword [esi + 0x14]
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x5c
ret