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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x1c]
mov edx, dword [edi + 0x4c]
imul esi, eax, 0x160c
mov edx, dword [edx + esi + 0x15d0]
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [edx]
mov edx, dword [ebx + 0x14]
mov dword [esp + 4], edx
mov esi, dword [ecx]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x30], edx
xor edx, edx
div dword [edi + 0x18]
imul edx, dword [edi + 0xc]
add edx, dword [edi + 4]
cmp edx, esi
cmova esi, edx
mov dword [ebx], esi
mov dword [esp + 0x78], edi
add edx, dword [edi + 0xc]
mov edi, 0xffffffff
cmovb edx, edi
mov edi, dword [ecx + 8]
cmp edx, edi
cmovae edx, edi
mov dword [esp + 0x3c], ebx
mov dword [ebx + 8], edx
mov ebx, dword [ebp + 0x10]
test esi, esi
js 0x1019544e
cmp edx, esi
jle 0x1019544e
mov esi, dword [esp + 0x78]
imul eax, dword [esi + 0x10]
add eax, dword [esi + 8]
mov edx, dword [ecx + 4]
cmp eax, edx
cmova edx, eax
mov edi, dword [esp + 0x3c]
mov dword [edi + 4], edx
add eax, dword [esi + 0x10]
mov ecx, dword [ecx + 0xc]
mov esi, 0xffffffff
cmovb eax, esi
cmp eax, ecx
cmovae eax, ecx
mov dword [edi + 0xc], eax
test edx, edx
js 0x10195455
cmp eax, edx
jle 0x10195455
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
je 0x1019545c
mov edi, dword [esp + 0x3c]
cmp dword [edi + 0x10], 0
je 0x10195478
xor eax, eax
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x30], esi
xor eax, eax
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov edx, eax
sar edx, 0x1f
mov ecx, dword [edi]
mov esi, ecx
sar esi, 0x1f
add ecx, eax
adc esi, edx
add ecx, 0xffffffff
adc esi, 0xffffffff
push edx
push eax
push esi
push ecx
call fcn.1023b810
mov dword [ebx], eax
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 4]
mov edx, eax
sar edx, 0x1f
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 4]
mov esi, ecx
sar esi, 0x1f
add ecx, eax
adc esi, edx
add ecx, 0xffffffff
adc esi, 0xffffffff
push edx
push eax
push esi
push ecx
call fcn.1023b810
mov dword [ebx + 4], eax
mov eax, dword [edi]
mov edx, eax
sar edx, 0x1f
mov edi, dword [esp + 0x3c]
mov ecx, dword [edi + 8]
mov esi, ecx
sar esi, 0x1f
add ecx, eax
adc esi, edx
add ecx, 0xffffffff
adc esi, 0xffffffff
push edx
push eax
push esi
push ecx
call fcn.1023b810
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov edx, eax
sar edx, 0x1f
mov ecx, dword [edi + 0xc]
mov esi, ecx
sar esi, 0x1f
add ecx, eax
adc esi, edx
add ecx, 0xffffffff
adc esi, 0xffffffff
push edx
push eax
push esi
push ecx
call fcn.1023b810
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [ebx + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov dword [ebx + 0x14], eax
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x78]
sub ecx, dword [edx + 0x50]
mov edx, 1
cmovb ecx, edx
mov dword [ebx + 0x18], ecx
imul esi, eax, 0x98
push dword [ebx + 0x34]
call fcn.10181aa7
xorps xmm0, xmm0
add esp, 4
xor eax, eax
mov dword [ebx + 0x44], eax
movups xmmword [ebx + 0x34], xmm0
mov eax, dword [ebx + 0x1c]
test eax, eax
mov dword [esp + 4], ebx
je 0x10194a3b
cmp esi, dword [ebx + 0x20]
jbe 0x10194a66
push esi
push eax
call fcn.10181b01
add esp, 8
test eax, eax
je 0x101954c8
mov ebx, dword [esp + 4]
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebx + 0x20]
add eax, ecx
mov edx, esi
sub edx, ecx
push edx
push 0
push eax
call fcn.1023e960
add esp, 0xc
mov dword [ebx + 0x20], esi
jmp 0x10194a66
push esi
call fcn.10181ab0
mov ecx, dword [esp + 8]
add esp, 4
mov dword [ecx + 0x1c], eax
test eax, eax
je 0x1019546c
mov dword [ecx + 0x20], esi
push esi
push 0
push eax
call fcn.1023e960
mov ebx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x4c], eax
test eax, eax
mov ecx, dword [esp + 0x10]
je 0x10195423
lea eax, [ecx + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x4c]
lea ecx, [eax - 1]
mov edx, dword [ebx]
mov eax, edx
sar eax, 0x1f
mov dword [esp + 0x20], eax
xor ebx, ebx
dec ebx
mov edi, ebx
shl edi, cl
test cl, 0x20
mov eax, edi
mov esi, 0
cmovne eax, esi
cmove edi, ebx
not edi
mov ebx, eax
not ebx
add edx, ebx
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x20]
adc eax, edi
shrd edx, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, edx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0xc]
mov dword [edx], eax
mov esi, edx
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov edx, eax
sar edx, 0x1f
add eax, ebx
adc edx, edi
shrd eax, edx, cl
sar edx, cl
test cl, 0x20
cmove edx, eax
mov dword [esp + 8], edx
mov dword [esi + 4], edx
mov ebx, esi
mov dword [esp + 0xc], esi
mov edx, dword [esp + 4]
mov eax, dword [edx + 8]
mov esi, eax
sar esi, 0x1f
add eax, dword [esp + 0x48]
adc esi, edi
shrd eax, esi, cl
sar esi, cl
test cl, 0x20
cmove esi, eax
mov dword [ebx + 8], esi
mov eax, dword [edx + 0xc]
mov ebx, eax
sar ebx, 0x1f
add eax, dword [esp + 0x48]
mov dword [esp + 0x5c], edi
adc ebx, edi
shrd eax, ebx, cl
sar ebx, cl
mov dword [esp + 0x54], ecx
test cl, 0x20
cmove ebx, eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + ecx*4 + 0x32c]
mov dword [esp + 0x14], edx
xor edi, edi
mov ecx, edx
xor eax, eax
inc eax
shld edi, eax, cl
mov ecx, esi
sar ecx, 0x1f
mov dword [esp], ecx
mov ecx, edx
shl eax, cl
test dl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
add eax, esi
adc edi, dword [esp]
add eax, 0xffffffff
adc edi, 0xffffffff
mov ecx, edx
shrd eax, edi, cl
sar edi, cl
test dl, 0x20
cmove edi, eax
mov eax, dword [esp + 0x20]
shr eax, cl
shl eax, cl
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + ecx*4 + 0x3b0]
mov edx, dword [esp + 8]
mov ecx, eax
shr edx, cl
shl edx, cl
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x14]
shl edi, cl
test edi, edi
js 0x10195484
mov ecx, ebx
sar ecx, 0x1f
mov dword [esp], ecx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
test al, 0x20
mov dword [esp + 0x1c], eax
mov eax, edx
mov ecx, 0
cmovne eax, ecx
mov ecx, 0xffffffff
cmove edx, ecx
not edx
not eax
add eax, ebx
adc edx, dword [esp]
mov ecx, dword [esp + 0x1c]
shrd eax, edx, cl
mov ecx, dword [esp + 0x1c]
sar edx, cl
test byte [esp + 0x1c], 0x20
cmove edx, eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
shl edx, cl
test edx, edx
js 0x10195484
sub edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
sar edi, cl
cmp dword [esp + 0x20], esi
mov esi, 0
cmove edi, esi
sub edx, dword [esp + 0x50]
mov ecx, eax
sar edx, cl
cmp dword [esp + 8], ebx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x10], edi
cmove edx, esi
mov dword [eax + 0x14], edx
test edi, edi
mov ecx, edx
je 0x10194c6b
mov eax, edi
mul ecx
jo 0x1019548b
imul ecx, edi
cmp ecx, 0x6666667
jae 0x1019548b
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x60], ecx
je 0x10194ccf
mov ecx, dword [esp + 0x38]
mov eax, ecx
sar eax, 0x1f
add ecx, 1
adc eax, 0
shrd ecx, eax, 1
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x50]
mov eax, ecx
sar eax, 0x1f
add ecx, 1
adc eax, 0
shrd ecx, eax, 1
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0x14]
dec ebx
mov edi, dword [esp + 0x1c]
dec edi
mov eax, 3
mov ecx, dword [esp + 0x10]
xor esi, esi
dec esi
mov edx, dword [esp + 0xc]
jmp 0x10194ce5
xor eax, eax
inc eax
mov ecx, dword [esp + 0x10]
xor esi, esi
dec esi
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov dword [edx + 0x18], eax
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
cmp eax, ebx
mov dword [esp + 0x14], ebx
cmovae eax, ebx
cmp edx, edi
mov dword [esp + 0x1c], edi
cmovae edx, edi
xor edi, edi
mov ecx, dword [esp + 0x4c]
xor ebx, ebx
inc ebx
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov dword [esp + 0x6c], edi
mov ecx, 0
cmovne ebx, ecx
mov dword [esp + 0x68], ebx
mov edi, esi
mov ecx, eax
shl edi, cl
mov dword [esp + 0x7c], eax
test al, 0x20
mov ebx, edi
mov eax, 0
cmovne ebx, eax
cmove edi, esi
mov ecx, edx
shl esi, cl
mov eax, dword [esp + 0x60]
lea eax, [eax*8]
lea eax, [eax + eax*4]
mov dword [esp + 0x44], eax
not edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x64], edx
test dl, 0x20
mov eax, esi
mov dword [esp + 0x58], 0
mov ecx, 0
cmovne eax, ecx
mov ecx, 0xffffffff
cmove esi, ecx
not ebx
mov dword [esp + 0x90], ebx
not esi
mov dword [esp + 0x8c], esi
not eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xc]
add eax, 0x1c
mov dword [esp + 0x18], eax
cmp dword [esp + 0x2c], 0
je 0x10194e8e
mov eax, dword [esp + 0x58]
lea ebx, [eax + 1]
mov eax, ebx
mov dword [esp + 0x20], ebx
shr eax, 1
mov esi, eax
mov ecx, dword [esp + 0x54]
shl esi, cl
test cl, 0x20
mov edx, esi
mov edi, 0
cmovne edx, edi
mov dword [esp + 8], edx
xor edi, edi
shld edi, eax, cl
test cl, 0x20
cmovne edi, esi
mov eax, ebx
and eax, 1
mov esi, eax
shl esi, cl
test cl, 0x20
mov ebx, esi
mov edx, 0
cmovne ebx, edx
xor edx, edx
shld edx, eax, cl
test cl, 0x20
cmovne edx, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 4]
mov esi, dword [eax]
mov eax, esi
sar eax, 0x1f
not edx
not ebx
add ebx, dword [esp + 0x68]
mov dword [esp + 0x34], ebx
adc edx, dword [esp + 0x6c]
add esi, ebx
adc eax, edx
mov ecx, dword [esp + 0x4c]
shrd esi, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, esi
mov esi, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [esp + 4]
mov esi, dword [eax + 4]
mov eax, esi
sar eax, 0x1f
not edi
mov ebx, dword [esp + 8]
not ebx
add ebx, dword [esp + 0x68]
mov dword [esp + 8], ebx
adc edi, dword [esp + 0x6c]
add esi, ebx
mov ebx, edx
mov dword [esp], edi
adc eax, edi
mov edi, dword [esp + 8]
shrd esi, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, esi
mov esi, dword [esp + 0x18]
mov dword [esi + 4], eax
mov eax, dword [esp + 4]
mov esi, dword [eax + 8]
mov eax, esi
sar eax, 0x1f
jmp 0x10194efc
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x10], 0
mov esi, dword [esp + 4]
mov edx, dword [esi]
mov eax, edx
sar eax, 0x1f
mov edi, dword [esp + 0x48]
add edx, edi
adc eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
shrd edx, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, edx
mov dword [ebx], eax
mov edx, dword [esi + 4]
mov eax, edx
sar eax, 0x1f
add edx, edi
adc eax, dword [esp + 0x5c]
shrd edx, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, edx
mov dword [esp + 0x20], 0
mov dword [ebx + 4], eax
mov ebx, dword [esi + 8]
mov dword [esp + 0x34], ebx
sar ebx, 0x1f
mov edi, dword [esp + 0x48]
mov esi, edi
mov edx, dword [esp + 0x5c]
mov eax, edx
mov dword [esp], edx
add esi, dword [esp + 0x34]
adc eax, ebx
shrd esi, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, esi
mov ebx, dword [esp + 0x18]
mov dword [ebx + 8], eax
mov eax, dword [esp + 4]
mov esi, dword [eax + 0xc]
mov eax, esi
sar eax, 0x1f
add edi, esi
adc eax, dword [esp]
shrd edi, eax, cl
sar eax, cl
test cl, 0x20
cmove eax, edi
mov dword [ebx + 0xc], eax
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, 3
sete al
inc eax
test ecx, ecx
cmove eax, ecx
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x14]
test ecx, ecx
cmove eax, ecx
mov ecx, dword [esp + 0x30]
add eax, dword [ecx + 0x18]
mov edi, dword [esp + 0x70]
cvtsi2sd xmm0, dword [edi + 4]
movsd qword [esp + 0x20], xmm0
sub eax, dword [edi]
push eax
push 0x3ff00000
push 0
call fcn.10253e7b
add esp, 0xc
movsd xmm0, qword [esp + 0x20]
mulsd xmm0, qword [0x10325f60]
addsd xmm0, qword [0x10295be8]
fstp qword [esp + 0xb0]
mulsd xmm0, qword [esp + 0xb0]
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x20], xmm0
mov eax, dword [edi]
mov ecx, dword [esi + 0x324]
lea eax, [eax + ecx - 1]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x14]
mov esi, dword [esp + 0x60]
test esi, esi
je 0x10194ffb
test eax, eax
jne 0x10194ffb
mov esi, dword [esp + 0x44]
push esi
call fcn.10181ab0
add esp, 4
mov dword [ebx + 0x14], eax
test eax, eax
mov ecx, dword [esp + 0x14]
je 0x101954bc
push esi
push 0
push eax
mov edi, ecx
call fcn.1023e960
mov ecx, edi
add esp, 0xc
mov dword [ebx + 0x18], esi
mov edi, dword [esp + 0xc]
jmp 0x1019504b
mov edx, dword [esp + 0x44]
cmp dword [ebx + 0x18], edx
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
jae 0x10195043
push edx
push eax
call fcn.10181b01
add esp, 8
test eax, eax
je 0x101954f6
mov dword [ebx + 0x14], eax
mov ecx, dword [ebx + 0x18]
add eax, ecx
mov edx, dword [esp + 0x44]
sub edx, ecx
push edx
push 0
push eax
call fcn.1023e960
add esp, 0xc
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x18], eax
mov ecx, dword [esp + 0x14]
test esi, esi
je 0x101953db
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x14]
xor eax, eax
mov dword [esp], esi
mov dword [esp + 0x98], eax
xor edx, edx
div dword [edi + 0x10]
mov edi, eax
mov eax, edx
mov ebx, ecx
shl eax, cl
add eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov esi, edi
mov eax, dword [esp + 0x1c]
mov ecx, eax
shl esi, cl
inc edx
mov ecx, ebx
shl edx, cl
mov ebx, dword [esp + 0x50]
add esi, ebx
mov dword [esp + 0x40], esi
add edx, dword [esp + 0x38]
inc edi
mov ecx, eax
shl edi, cl
add edi, ebx
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
mov eax, dword [esp + 8]
cmp eax, ecx
cmovle eax, ecx
mov dword [esp + 8], eax
mov ebx, dword [esp]
mov dword [ebx], eax
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x40]
cmp eax, ecx
cmovle eax, ecx
mov dword [esp + 0x40], eax
mov dword [ebx + 4], eax
mov ecx, dword [esi + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [ebx + 8], edx
mov ecx, dword [esi + 0xc]
cmp edi, ecx
cmovge edi, ecx
mov eax, dword [esp + 0x7c]
mov ecx, eax
sar dword [esp + 8], cl
mov ecx, dword [esp + 0x64]
sar dword [esp + 0x40], cl
mov esi, edx
sar esi, 0x1f
add edx, dword [esp + 0x90]
adc esi, dword [esp + 0x94]
mov ecx, eax
shrd edx, esi, cl
mov dword [ebx + 0xc], edi
sar esi, cl
test al, 0x20
cmove esi, edx
mov ebx, edi
sar ebx, 0x1f
add edi, dword [esp + 0x88]
adc ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x64]
mov ecx, edx
shrd edi, ebx, cl
sar ebx, cl
test dl, 0x20
cmove ebx, edi
sub esi, dword [esp + 8]
mov ecx, eax
shl esi, cl
sar esi, cl
mov eax, dword [esp + 0x40]
sub ebx, eax
mov ecx, edx
shl ebx, cl
sar ebx, cl
mov eax, dword [esp]
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ebx
test esi, esi
je 0x1019515a
mov eax, esi
mul ebx
jo 0x1019546c
mov ecx, ebx
imul ecx, esi
cmp ecx, 0x4000000
jae 0x1019547d
mov edi, ecx
shl edi, 6
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x80], ecx
test ecx, ecx
je 0x1019519f
test eax, eax
jne 0x1019519f
push edi
call fcn.10181ab0
add esp, 4
mov esi, dword [esp]
mov dword [esi + 0x18], eax
test eax, eax
je 0x1019546c
push edi
jmp 0x101951c9
mov ecx, dword [esp]
cmp edi, dword [ecx + 0x1c]
jbe 0x101951df
push edi
push eax
call fcn.10181b01
add esp, 8
test eax, eax
je 0x10195492
mov esi, dword [esp]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x1c]
add eax, ecx
mov edx, edi
sub edx, ecx
push edx
push 0
push eax
call fcn.1023e960
add esp, 0xc
mov dword [esi + 0x1c], edi
mov ecx, esi
mov esi, dword [esi + 0x10]
mov ebx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x20]
mov edi, dword [ebp + 0x10]
test eax, eax
je 0x101951f7
push edi
push ebx
push esi
push eax
call fcn.10196cca
add esp, 0x10
jmp 0x10195202
push edi
push ebx
push esi
call fcn.10196a3c
add esp, 0xc
mov esi, dword [esp]
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
test ecx, ecx
je 0x10195223
push edi
push edx
push eax
push ecx
call fcn.10196cca
add esp, 0x10
jmp 0x1019522e
push edi
push edx
push eax
call fcn.10196a3c
add esp, 0xc
mov dword [esi + 0x24], eax
cmp dword [esp + 0x80], 0
je 0x101953be
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x84], eax
xor edx, edx
div dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 8]
add eax, edx
mov edx, dword [esp + 0x7c]
mov ecx, edx
shl eax, cl
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
lea esi, [eax + edi]
mov eax, dword [esp + 0x64]
mov ecx, eax
shl esi, cl
mov dword [esp + 0xa8], esi
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x34]
add esi, ecx
inc esi
mov ecx, edx
shl esi, cl
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x20]
lea edx, [ecx + edi]
inc edx
mov esi, dword [esp]
mov ecx, eax
shl edx, cl
mov dword [esp + 0x20], edx
mov edi, dword [esi + 0x18]
mov eax, dword [edi + ebx]
test eax, eax
je 0x10195342
mov ecx, dword [edi + ebx + 4]
mov dword [esp + 0xa0], ecx
mov esi, dword [edi + ebx + 0x30]
mov ecx, dword [edi + ebx + 0x38]
mov dword [esp + 0x9c], ecx
push dword [edi + ebx + 0x3c]
mov dword [esp + 0xa8], eax
call fcn.10181add
mov ecx, dword [esp + 0xa8]
add esp, 4
xorps xmm0, xmm0
movups xmmword [edi + ebx + 0x28], xmm0
xor eax, eax
mov dword [edi + ebx + 0x3c], eax
mov dword [edi + ebx + 0x38], eax
movups xmmword [edi + ebx + 0x18], xmm0
movups xmmword [edi + ebx + 8], xmm0
mov dword [edi + ebx], ecx
mov dword [edi + ebx + 0x30], esi
test esi, esi
je 0x10195327
shl esi, 3
lea eax, [esi + esi*2]
push eax
push 0
push ecx
call fcn.1023e960
add esp, 0xc
mov eax, dword [esp + 0xa0]
mov dword [edi + ebx + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [edi + ebx + 0x38], eax
mov esi, dword [esp]
jmp 0x10195361
push 0x18
push 0xa
call fcn.10181ab9
add esp, 8
mov dword [edi + ebx], eax
test eax, eax
je 0x1019546c
mov dword [edi + ebx + 0x30], 0xa
mov eax, dword [esp + 0x84]
mov edx, dword [esi]
mov ecx, dword [esp + 0xac]
cmp ecx, edx
cmovg edx, ecx
mov dword [edi + ebx + 8], edx
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0xa8]
cmp ecx, edx
cmovg edx, ecx
mov dword [edi + ebx + 0xc], edx
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x34]
cmp ecx, edx
cmovl edx, ecx
mov dword [edi + ebx + 0x10], edx
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
cmovl edx, ecx
mov dword [edi + ebx + 0x14], edx
inc eax
add ebx, 0x40
cmp dword [esp + 0x80], eax
jne 0x10195243
add esi, 0x28
mov eax, dword [esp + 0x98]
inc eax
cmp eax, dword [esp + 0x60]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
jne 0x10195054
mov eax, dword [esp + 0x58]
inc eax
add dword [esp + 0x18], 0x24
add dword [esp + 0x70], 8
mov dword [esp + 0x58], eax
cmp eax, dword [edi + 0x18]
jb 0x10194da3
add edi, 0x98
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x2c]
inc ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 4]
mov dword [esp + 0x2c], ecx
cmp ecx, dword [ebx + 0x14]
mov ecx, dword [esp + 0x10]
jb 0x10194a8f
add ecx, 0x438
add ebx, 0x4c
mov esi, dword [esp + 0x30]
add esi, 0x34
mov eax, dword [esp + 0x74]
inc eax
mov edi, dword [esp + 0x3c]
cmp eax, dword [edi + 0x10]
mov edx, 1
jb 0x10194900
mov esi, edx
jmp 0x1019546e
push str.Tile_X_coordinates_are_not_supported_n
jmp 0x10195461
push str.Tile_Y_coordinates_are_not_supported_n
jmp 0x10195461
push str.tiles_require_at_least_one_resolution_n
push 1
push ebx
call fcn.1016f44c
add esp, 0xc
xor esi, esi
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
inc esi
jmp 0x1019546e
push str.Size_of_code_block_data_exceeds_system_limits_n
jmp 0x101954c1
push str.Integer_overflow_n
jmp 0x101954c1
push 0x10325f68
jmp 0x101954c1
mov edi, dword [esp]
push dword [edi + 0x18]
call fcn.10181b0a
add esp, 4
xor esi, esi
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], esi
push str.Not_enough_memory_for_current_precinct_codeblock_element_n
push 1
push dword [ebp + 0x10]
call fcn.1016f44c
add esp, 0xc
jmp 0x1019546e
push str.Not_enough_memory_to_handle_band_precints_n
push 1
push dword [ebp + 0x10]
jmp 0x10195464
push str.Not_enough_memory_for_tile_resolutions_n
push 1
push dword [ebp + 0x10]
call fcn.1016f44c
add esp, 0xc
mov esi, dword [esp + 4]
push dword [esi + 0x1c]
call fcn.10181b0a
add esp, 4
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
jmp 0x1019546c
push str.Not_enough_memory_to_handle_band_precints_n
push 1
push dword [ebp + 0x10]
call fcn.1016f44c
add esp, 0xc
push dword [ebx + 0x14]
call fcn.10181b0a
add esp, 4
xor esi, esi
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x18], esi
jmp 0x1019546e