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

Disassembly:
sub esp, 0x68
mov ecx, dword [eax + 8]
mov eax, dword [edx + 8]
push ebx
push ebp
mov dword [esp + 0x44], eax
push esi
mov esi, dword [esp + 0x98]
mov eax, dword [esi + 0x14]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + 8]
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x84]
add eax, 3
mov dword [esp + 0x5c], edx
mov dl, byte [esi + 0xc]
mov dword [esp + 0x14], ecx
sar eax, 2
mov ecx, 0
push edi
mov edi, dword [esi + 4]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x74], ebx
mov byte [esp + 0x11], dl
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], ecx
je 0x10016364
fld dword [esp + 0x80]
add eax, 0xffffffff
cmp ecx, eax
jae 0x100158ae
mov dword [esp + 0x34], 4
jmp 0x100158c6
lea ecx, [eax*4]
mov eax, dword [esp + 0x88]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x84], 0
mov eax, dword [esp + 0x38]
movzx eax, byte [eax]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 1]
mov byte [esp + 0x15], al
mov dword [esp + 0x24], 0
jbe 0x1001634f
add ecx, ecx
add ecx, ecx
mov eax, 4
sub eax, ecx
mov dword [esp + 0x64], eax
movzx ecx, byte [esp + 0x15]
mov al, byte [esp + 0x12]
mov esi, dword [esp + 0x24]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + esi + 2]
mov byte [esp + 0x16], al
or al, cl
or al, byte [esp + 0x12]
mov byte [esp + 0x15], cl
mov ecx, dword [esp + 0x60]
movzx esi, byte [ecx + esi + 1]
movzx ecx, byte [esp + 0x64]
shr esi, cl
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x14], al
and esi, 0xf
cmp esi, dword [ecx*4 + 0x1009b9d8]
mov dword [esp + 0x48], esi
je 0x1001632c
mov ecx, dword [esp + 0x2c]
add ecx, ecx
add ecx, ecx
imul ecx, dword [esp + 0x98]
add ecx, dword [esp + 0x24]
cmp dword [esp + 0x2c], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], 0xffffffff
je 0x10015981
test al, 0xf8
jmp 0x10015983
test al, 0x1f
jne 0x10015ec6
cmp dword [esp + 0x34], 4
jne 0x10015ec6
test esi, esi
jne 0x10015ec6
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
add eax, 0x11
mov dword [esp + 0x28], eax
movzx eax, byte [eax]
mov eax, dword [eax*4 + 0x10089f80]
mov ecx, eax
mov ebx, edi
shr ecx, 0x10
shr ebx, 0x10
add esi, 0x11
cmp ebx, ecx
mov dword [esp + 0x20], ecx
jb 0x10015a30
sub dword [esp + 0x18], ecx
mov ebx, eax
and ebx, 0xffff0000
sub edi, ebx
mov ebx, dword [esp + 0x18]
test ebx, 0x8000
je 0x100159f1
movzx ecx, byte [esi]
mov ebx, dword [esp + 0x1c]
jmp 0x10015acb
cmp ebx, ecx
jb 0x10015a07
movzx ecx, byte [esi]
mov esi, dword [esp + 0x28]
shr eax, 8
mov byte [esi], al
mov eax, dword [esp + 0x18]
jmp 0x10015a6d
mov bl, byte [esi]
movzx ecx, bl
xor ecx, 1
mov dword [esp + 0x3c], ecx
mov cl, al
and cl, 1
xor cl, bl
mov byte [esi], cl
mov ecx, dword [esp + 0x28]
shr eax, 1
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
jmp 0x10015a6d
add ecx, ecx
cmp dword [esp + 0x18], ecx
jae 0x10015a46
movzx ecx, byte [esi]
mov esi, dword [esp + 0x28]
shr eax, 8
mov byte [esi], al
jmp 0x10015a69
mov bl, byte [esi]
movzx ecx, bl
xor ecx, 1
mov dword [esp + 0x3c], ecx
mov cl, al
and cl, 1
xor cl, bl
mov byte [esi], cl
mov ecx, dword [esp + 0x28]
shr eax, 1
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
test ebp, ebp
jne 0x10015ab1
cmp ebx, dword [esp + 0x30]
je 0x10015aa6
cmp dl, 0xff
mov dl, byte [ebx]
je 0x10015a8f
movzx esi, dl
shl esi, 8
add ebx, 1
add edi, esi
jmp 0x10015aac
add ebx, 1
cmp dl, 0x8f
ja 0x10015aa6
movzx esi, dl
shl esi, 9
add edi, esi
mov ebp, 7
jmp 0x10015ab1
add edi, 0xff00
mov ebp, 8
add eax, eax
add edi, edi
sub ebp, 1
test eax, 0x8000
je 0x10015a71
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x11], dl
test ecx, ecx
je 0x1001632c
movzx eax, byte [0x1009b9ee]
mov eax, dword [eax*4 + 0x10089f80]
mov ecx, eax
mov esi, edi
shr ecx, 0x10
shr esi, 0x10
cmp esi, ecx
mov dword [esp + 0x20], ecx
jb 0x10015b5e
sub dword [esp + 0x18], ecx
mov esi, eax
and esi, 0xffff0000
sub edi, esi
mov esi, dword [esp + 0x18]
test esi, 0x8000
je 0x10015b19
movzx esi, byte [0x1009ff2c]
jmp 0x10015bf6
cmp esi, ecx
jb 0x10015b32
movzx esi, byte [0x1009ff2c]
shr eax, 8
mov byte [0x1009b9ee], al
mov eax, dword [esp + 0x18]
jmp 0x10015b9c
mov cl, byte [0x1009ff2c]
mov bl, al
movzx esi, cl
and bl, 1
xor cl, bl
mov ebx, dword [esp + 0x1c]
shr eax, 1
xor esi, 1
and al, 0x7f
mov byte [0x1009b9ee], al
mov eax, dword [esp + 0x18]
mov byte [0x1009ff2c], cl
jmp 0x10015b9c
add ecx, ecx
cmp dword [esp + 0x18], ecx
jae 0x10015b72
movzx esi, byte [0x1009ff2c]
shr eax, 8
jmp 0x10015b93
mov cl, byte [0x1009ff2c]
mov bl, al
movzx esi, cl
and bl, 1
xor cl, bl
mov ebx, dword [esp + 0x1c]
shr eax, 1
xor esi, 1
mov byte [0x1009ff2c], cl
and al, 0x7f
mov byte [0x1009b9ee], al
mov eax, dword [esp + 0x20]
test ebp, ebp
jne 0x10015bdc
cmp ebx, dword [esp + 0x30]
je 0x10015bd1
cmp dl, 0xff
mov dl, byte [ebx]
je 0x10015bba
movzx ecx, dl
shl ecx, 8
add ebx, 1
add edi, ecx
jmp 0x10015bd7
add ebx, 1
cmp dl, 0x8f
ja 0x10015bd1
movzx ecx, dl
shl ecx, 9
add edi, ecx
mov ebp, 7
jmp 0x10015bdc
add edi, 0xff00
mov ebp, 8
add eax, eax
add edi, edi
sub ebp, 1
test eax, 0x8000
je 0x10015b9c
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x11], dl
movzx ecx, byte [0x1009b9ee]
lea eax, [esi + esi]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx*4 + 0x10089f80]
mov ecx, eax
mov esi, edi
shr ecx, 0x10
shr esi, 0x10
cmp esi, ecx
mov dword [esp + 0x20], ecx
jb 0x10015c88
sub dword [esp + 0x18], ecx
mov esi, eax
and esi, 0xffff0000
sub edi, esi
mov esi, dword [esp + 0x18]
test esi, 0x8000
je 0x10015c43
movzx esi, byte [0x1009ff2c]
jmp 0x10015d20
cmp esi, ecx
jb 0x10015c5c
movzx esi, byte [0x1009ff2c]
shr eax, 8
mov byte [0x1009b9ee], al
mov eax, dword [esp + 0x18]
jmp 0x10015cc6
mov cl, byte [0x1009ff2c]
mov bl, al
movzx esi, cl
and bl, 1
xor cl, bl
mov ebx, dword [esp + 0x1c]
shr eax, 1
xor esi, 1
and al, 0x7f
mov byte [0x1009b9ee], al
mov eax, dword [esp + 0x18]
mov byte [0x1009ff2c], cl
jmp 0x10015cc6
add ecx, ecx
cmp dword [esp + 0x18], ecx
jae 0x10015c9c
movzx esi, byte [0x1009ff2c]
shr eax, 8
jmp 0x10015cbd
mov cl, byte [0x1009ff2c]
mov bl, al
movzx esi, cl
and bl, 1
xor cl, bl
mov ebx, dword [esp + 0x1c]
shr eax, 1
xor esi, 1
mov byte [0x1009ff2c], cl
and al, 0x7f
mov byte [0x1009b9ee], al
mov eax, dword [esp + 0x20]
test ebp, ebp
jne 0x10015d06
cmp ebx, dword [esp + 0x30]
je 0x10015cfb
cmp dl, 0xff
mov dl, byte [ebx]
je 0x10015ce4
movzx ecx, dl
shl ecx, 8
add ebx, 1
add edi, ecx
jmp 0x10015d01
add ebx, 1
cmp dl, 0x8f
ja 0x10015cfb
movzx ecx, dl
shl ecx, 9
add edi, ecx
mov ebp, 7
jmp 0x10015d06
add edi, 0xff00
mov ebp, 8
add eax, eax
add edi, edi
sub ebp, 1
test eax, 0x8000
je 0x10015cc6
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x11], dl
mov eax, dword [esp + 0x3c]
or eax, esi
mov ecx, eax
imul ecx, dword [esp + 0x98]
add dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
add ecx, ecx
add ecx, ecx
add ecx, eax
mov dword [esp + 0x3c], eax
mov eax, 0x80
sar eax, cl
mov cl, byte [esp + 0x12]
mov ebx, edi
shr ebx, 0x10
or cl, al
or byte [esp + 0x14], cl
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
add eax, 9
mov dword [esp + 0x28], eax
movzx eax, byte [eax]
mov eax, dword [eax*4 + 0x10089f80]
mov ecx, eax
shr ecx, 0x10
add esi, 9
cmp ebx, ecx
mov dword [esp + 0x20], ecx
jb 0x10015ded
sub dword [esp + 0x18], ecx
mov ebx, eax
and ebx, 0xffff0000
sub edi, ebx
mov ebx, dword [esp + 0x18]
test ebx, 0x8000
je 0x10015daf
cmp byte [esi], 0
setne cl
jmp 0x10015e8e
cmp ebx, ecx
jb 0x10015dc4
cmp byte [esi], 0
mov esi, dword [esp + 0x28]
setne cl
shr eax, 8
mov byte [esi], al
jmp 0x10015e2d
mov cl, byte [esi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x13]
mov bl, al
and bl, 1
xor bl, cl
mov ecx, dword [esp + 0x28]
shr eax, 1
mov byte [esi], bl
mov ebx, dword [esp + 0x18]
and al, 0x7f
mov byte [ecx], al
mov cl, byte [esp + 0x13]
jmp 0x10015e2d
add ecx, ecx
cmp dword [esp + 0x18], ecx
jae 0x10015e06
cmp byte [esi], 0
mov esi, dword [esp + 0x28]
setne cl
shr eax, 8
mov byte [esi], al
jmp 0x10015e29
mov cl, byte [esi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x13]
mov bl, al
and bl, 1
xor bl, cl
mov ecx, dword [esp + 0x28]
shr eax, 1
and al, 0x7f
mov byte [esi], bl
mov byte [ecx], al
mov cl, byte [esp + 0x13]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
test ebp, ebp
jne 0x10015e73
cmp eax, esi
je 0x10015e68
cmp dl, 0xff
mov dl, byte [eax]
je 0x10015e51
movzx ebp, dl
shl ebp, 8
add eax, 1
add edi, ebp
jmp 0x10015e6e
add eax, 1
cmp dl, 0x8f
ja 0x10015e68
movzx ebp, dl
shl ebp, 9
add edi, ebp
mov ebp, 7
jmp 0x10015e73
add edi, 0xff00
mov ebp, 8
add ebx, ebx
add edi, edi
sub ebp, 1
test ebx, 0x8000
je 0x10015e35
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x11], dl
test cl, cl
je 0x10015eac
mov cl, byte [esp + 0x54]
fld st(0)
mov eax, dword [esp + 0x24]
fchs
mov esi, dword [esp + 0x4c]
fstp dword [esp + 0x54]
or byte [eax + esi + 1], cl
jmp 0x10015eb0
fst dword [esp + 0x54]
fld dword [esp + 0x54]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
fstp dword [eax + ecx*4]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
add eax, eax
add eax, eax
mov dword [esp + 0x54], eax
mov ecx, 4
sub cl, al
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebx + 1]
shr eax, cl
mov ecx, dword [esp + 0x54]
and eax, 0xf
or esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], esi
lea esi, [eax + ecx]
imul esi, dword [esp + 0x98]
add eax, 1
add esi, ebx
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x50], eax
jae 0x10016318
mov ebx, dword [esp + 0x94]
add ecx, eax
mov dword [esp + 0x28], ecx
lea esi, [ebx + esi*4]
lea ecx, [ecx*4 + 0x1009b9b8]
mov dword [esp + 0x44], esi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x98]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x48]
cmp byte [eax + ecx*4 + 0x1009b9f0], 0
jne 0x100162fd
mov ecx, dword [esp + 0x2c]
add ecx, ecx
add ecx, ecx
mov al, byte [eax + ecx + 0x1009b9b0]
test byte [esp + 0x14], al
mov byte [esp + 0x17], al
je 0x10015fc6
mov edx, dword [esp + 0x54]
mov ecx, dword [edx]
movzx ebx, byte [esp + 0x12]
movzx edx, al
movzx eax, byte [esp + 0x16]
and eax, edx
movzx esi, cl
mov ecx, esi
shr eax, cl
and ebx, edx
shr ebx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, ebx
movzx ebx, byte [esp + 0x15]
add eax, eax
and ebx, edx
add eax, eax
shr ebx, cl
add eax, eax
or eax, ebx
cmp dword [esp + 0x28], 7
mov dword [esp + 0x3c], eax
jne 0x10015fba
add eax, eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + eax*4]
jmp 0x10015fcc
xor eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x40]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
movzx edx, byte [ecx + eax]
add ecx, eax
add esi, eax
mov eax, dword [edx*4 + 0x10089f80]
mov edx, eax
mov ebx, edi
shr edx, 0x10
shr ebx, 0x10
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x10016059
sub dword [esp + 0x18], edx
mov ebx, eax
and ebx, 0xffff0000
sub edi, ebx
mov ebx, dword [esp + 0x18]
test ebx, 0x8000
je 0x1001601f
cmp byte [esi], 0
mov dl, byte [esp + 0x11]
setne bl
jmp 0x100160f4
cmp ebx, edx
jb 0x10016034
cmp byte [esi], 0
setne bl
shr eax, 8
mov byte [ecx], al
mov ecx, dword [esp + 0x18]
jmp 0x1001608f
mov dl, byte [esi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x13]
mov bl, al
and bl, 1
xor bl, dl
shr eax, 1
mov byte [esi], bl
mov bl, byte [esp + 0x13]
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x18]
jmp 0x1001608f
add edx, edx
cmp dword [esp + 0x18], edx
jae 0x1001606c
cmp byte [esi], 0
setne bl
shr eax, 8
jmp 0x10016089
mov dl, byte [esi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x13]
mov bl, al
and bl, 1
xor bl, dl
shr eax, 1
mov byte [esi], bl
mov bl, byte [esp + 0x13]
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x11]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
test ebp, ebp
jne 0x100160d9
cmp eax, esi
je 0x100160ce
cmp dl, 0xff
mov dl, byte [eax]
je 0x100160b7
movzx ebp, dl
shl ebp, 8
add eax, 1
add edi, ebp
jmp 0x100160d4
add eax, 1
cmp dl, 0x8f
ja 0x100160ce
movzx ebp, dl
shl ebp, 9
add edi, ebp
mov ebp, 7
jmp 0x100160d9
add edi, 0xff00
mov ebp, 8
add ecx, ecx
add edi, edi
sub ebp, 1
test ecx, 0x8000
je 0x1001609b
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x11], dl
test bl, bl
je 0x100162f9
mov ecx, dword [esp + 0x28]
mov eax, 0x80
sar eax, cl
mov cl, byte [esp + 0x12]
or cl, al
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x14]
or al, cl
mov byte [esp + 0x12], cl
mov cl, byte [esp + 0x17]
test al, cl
mov byte [esp + 0x14], al
je 0x10016192
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x4c]
mov bl, byte [edx + esi + 1]
mov al, byte [edx + esi]
mov dl, byte [edx + esi + 2]
mov byte [esp + 0x68], dl
or dl, bl
or dl, al
test cl, dl
mov byte [esp + 0x6c], bl
je 0x1001616a
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x44]
lea esi, [esp + 0x60]
call fcn.10014230
add esp, 8
jmp 0x10016177
mov eax, dword [esp + 0x3c]
and eax, 0xaa
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + ecx*4]
mov cl, al
and cl, 1
mov byte [esp + 0x13], cl
shr eax, 1
jmp 0x1001619c
mov eax, 9
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x40]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
movzx edx, byte [ecx + eax]
add ecx, eax
add esi, eax
mov eax, dword [edx*4 + 0x10089f80]
mov edx, eax
mov ebx, edi
shr edx, 0x10
shr ebx, 0x10
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1001622f
sub dword [esp + 0x18], edx
mov ebx, eax
and ebx, 0xffff0000
sub edi, ebx
mov ebx, dword [esp + 0x18]
test ebx, 0x8000
je 0x100161f2
mov al, byte [esi]
xor al, byte [esp + 0x13]
mov dl, byte [esp + 0x11]
setne bl
jmp 0x100162cd
cmp ebx, edx
mov dl, byte [esi]
jb 0x1001620a
xor dl, byte [esp + 0x13]
setne bl
shr eax, 8
mov byte [ecx], al
mov ecx, dword [esp + 0x18]
jmp 0x10016268
xor dl, byte [esp + 0x13]
xor dl, 1
setne byte [esp + 0x13]
mov bl, byte [esp + 0x13]
mov dl, al
and dl, 1
xor dl, byte [esi]
shr eax, 1
and al, 0x7f
mov byte [esi], dl
mov byte [ecx], al
mov ecx, dword [esp + 0x18]
jmp 0x10016268
add edx, edx
cmp dword [esp + 0x18], edx
mov dl, byte [esi]
jae 0x10016245
xor dl, byte [esp + 0x13]
setne bl
shr eax, 8
jmp 0x10016262
xor dl, byte [esp + 0x13]
xor dl, 1
setne byte [esp + 0x13]
mov bl, byte [esp + 0x13]
mov dl, al
and dl, 1
xor dl, byte [esi]
shr eax, 1
mov byte [esi], dl
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov dl, byte [esp + 0x11]
test ebp, ebp
jne 0x100162b2
cmp eax, esi
je 0x100162a7
cmp dl, 0xff
mov dl, byte [eax]
je 0x10016290
movzx ebp, dl
shl ebp, 8
add eax, 1
add edi, ebp
jmp 0x100162ad
add eax, 1
cmp dl, 0x8f
ja 0x100162a7
movzx ebp, dl
shl ebp, 9
add edi, ebp
mov ebp, 7
jmp 0x100162b2
add edi, 0xff00
mov ebp, 8
add ecx, ecx
add edi, edi
sub ebp, 1
test ecx, 0x8000
je 0x10016274
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x11], dl
test bl, bl
je 0x100162eb
mov cl, byte [esp + 0x70]
fld st(0)
mov eax, dword [esp + 0x24]
fchs
mov esi, dword [esp + 0x4c]
fstp dword [esp + 0x3c]
or byte [eax + esi + 1], cl
jmp 0x100162ef
fst dword [esp + 0x3c]
fld dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
fstp dword [eax]
mov eax, dword [esp + 0x50]
add dword [esp + 0x28], 1
add dword [esp + 0x54], 4
add eax, 1
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x50], eax
jb 0x10015f36
mov bl, byte [esp + 0x12]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov byte [ecx + eax + 1], bl
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add eax, 1
cmp eax, dword [esp + 0x84]
mov dword [esp + 0x24], eax
jb 0x10015902
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x5c]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x2c], ecx
jb 0x1001589d
fstp st(0)
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x14]
mov byte [esi + 0xc], dl
mov edx, ebx
sub edx, dword [esp + 0x74]
mov dword [esi + 8], ecx
mov dword [esi + 4], edi
mov dword [esi + 0x10], ebp
pop edi
mov dword [eax + 8], edx
mov ecx, dword [esi + 0x14]
pop esi
pop ebp
mov dword [ecx], ebx
pop ebx
add esp, 0x68
ret