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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x12c
mov ebp, dword [esp + 0x140]
mov ecx, dword [ebp + 0x620]
mov edi, ebp
mov dword [esp + 0x4c], ebp
cmp ecx, 1
jle 0x10016c70
mov eax, dword [ebp + 0x5a4]
mov ebx, dword [ebp + eax*4 + 0x35c]
add eax, 1
cdq
idiv ecx
lea eax, [edx + 1]
mov dword [ebp + 0x5a4], edx
mov ebp, dword [ebp + edx*4 + 0x35c]
cdq
idiv ecx
cmp ebx, ebp
mov eax, dword [edi + edx*4 + 0x35c]
mov dword [esp + 0x4c], eax
je 0x10016c60
mov eax, dword [ebx + 0x3a90]
lea edx, [ebx + 0x3a90]
test eax, eax
je 0x10016bbf
add edx, 4
add dword [eax + 0x2eb8], 1
mov eax, dword [edx]
test eax, eax
jne 0x10016baf
mov eax, dword [ebp + 0x3a90]
lea esi, [ebp + 0x3a90]
test eax, eax
je 0x10016be4
mov dword [esp + 4], eax
add esi, 4
mov dword [esp], ebx
call fcn.1002d990
mov eax, dword [esi]
test eax, eax
jne 0x10016bcf
mov eax, dword [ebx + 0x3b3c]
mov edi, ebp
mov esi, ebx
add dword [eax + 0x2eb8], 1
mov eax, dword [ebp + 0x3b3c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.1002d990
lea eax, [ebp + 0x618]
lea edx, [ebx + 0x618]
mov dword [esp + 8], 0x43f0
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.102da6f0
mov ecx, 0xd7
mov eax, dword [ebx + 0x614]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp + 0x7728]
lea esi, [ebx + 0x7728]
mov cx, 0x33c
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp + 0x8f88]
lea esi, [ebx + 0x8f88]
mov cl, 0x9e
rep movsd dword es:[edi], dword [esi]
mov dword [ebp + 0x614], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.1004dbf0
mov eax, dword [ebp + 0x670]
mov edx, dword [ebp + 0x674]
mov dword [ebp + 0x668], eax
mov eax, dword [esp + 0x148]
mov dword [ebp + 0x66c], edx
mov dword [eax], 0
mov eax, dword [esp + 0x144]
mov dword [eax], 0
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x10018bc1
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.1002da10
test eax, eax
mov esi, eax
je 0x10017a75
mov eax, dword [esp + 0x14c]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.1002b1a0
test eax, eax
js 0x10017a75
mov eax, dword [ebp + 0x4880]
shl eax, 4
cmp dword [ebp + 0x1c], eax
je 0x100171dd
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.1002d330
mov eax, dword [ebp + 0x3ae4]
lea edx, [eax + 1]
test eax, eax
mov dword [ebp + 0x3ae4], edx
mov dword [esi + 0x5c], eax
jne 0x10016d30
mov ecx, dword [esi + 0x18]
mov ebx, dword [esi + 0x1c]
mov dword [ebp + 0x3b08], ecx
mov dword [ebp + 0x3b0c], ebx
mov edx, dword [ebp + 0x3af8]
test edx, edx
je 0x10016d42
cmp eax, edx
je 0x10018d14
mov eax, dword [ebp + 0x308]
mov edx, dword [ebp + 0x3b20]
test eax, eax
mov eax, dword [ebp + 0x3b24]
je 0x10016d88
cmp dword [esi + 0x1c], eax
jg 0x10016d88
jl 0x10016d64
cmp dword [esi + 0x18], edx
ja 0x10016d88
mov dword [esp + 8], str.non_strictly_monotonic_PTS_n
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.100083f0
mov edx, dword [ebp + 0x3b20]
mov eax, dword [ebp + 0x3b24]
mov dword [ebp + 0x3b2c], eax
mov eax, dword [esi + 0x18]
mov dword [ebp + 0x3b28], edx
mov edx, dword [esi + 0x1c]
mov dword [ebp + 0x3b20], eax
mov eax, dword [esi + 0x78]
mov dword [ebp + 0x3b24], edx
cmp eax, 9
ja 0x100171f4
test eax, eax
je 0x100171fb
mov ecx, dword [ebp + 0x2b4]
mov eax, dword [esp + 0x14c]
test ecx, ecx
je 0x10016dd9
mov edx, dword [ebp + 0x2c4]
test edx, edx
jne 0x10018c95
mov eax, dword [eax + 0x50]
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov dword [esp], 0x10042c80
mov dword [esp + 0xc], eax
call fcn.10029d00
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0x54]
test eax, eax
je 0x10016e11
mov edi, dword [esp + 0x14c]
mov edx, dword [edi + 0x50]
mov dword [esp], edx
call eax
mov eax, dword [ebp + 0x3b30]
test eax, eax
jne 0x10018ad4
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.100aaf20
mov eax, dword [ebp + 0x3af4]
add eax, 1
sub eax, dword [ebp + 0x620]
cmp dword [ebp + 0x3ae4], eax
jle 0x10018aba
mov eax, dword [ebp + 0x3a80]
add dword [ebp + 0x618], 1
mov edi, dword [eax]
test edi, edi
je 0x1001972b
mov dword [esp], eax
call fcn.1002d920
mov ebx, dword [ebp + 0xc]
test ebx, ebx
mov dword [ebp + 0x3b38], eax
jne 0x10018c40
mov eax, dword [ebp + 0x620]
sub eax, 1
cmp dword [ebp + 0x618], eax
je 0x10018c23
mov eax, dword [ebp + 0x614]
test eax, eax
jne 0x10018c02
mov eax, dword [ebp + 0x3b38]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x58]
test eax, eax
je 0x10016ee3
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.10012770
mov eax, dword [ebp + 0x3b38]
mov edx, dword [eax + 0x58]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x354]
test eax, eax
je 0x10016ee3
mov dword [esp], edx
call eax
mov eax, dword [ebp + 0x3b38]
mov dword [esp + 0x30], eax
mov dword [eax + 0x58], 0
mov ebx, dword [ebp + 0x3b3c]
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x10017a85
cmp dword [ebp + 0x620], 1
jle 0x10016f33
mov dword [esp + 4], ebx
mov dword [esp], ebp
call fcn.1002d990
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.1002da10
test eax, eax
mov ebx, eax
mov dword [ebp + 0x3b3c], eax
je 0x10017a75
mov eax, dword [ebp + 0x3b38]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x2eb0], 0xffffffff
mov eax, dword [eax + 0x10]
lea edx, [eax - 1]
cmp edx, 1
jbe 0x1001722c
mov edx, dword [ebp + 0x3a90]
test edx, edx
je 0x100170db
mov esi, dword [edx + 0x2eec]
xor edx, edx
mov ecx, dword [ebp + 0x3a94]
test esi, esi
sete dl
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3a98]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3a9c]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3aa0]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3aa4]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3aa8]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3aac]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ab0]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ab4]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ab8]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3abc]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ac0]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ac4]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ac8]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3acc]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
mov ecx, dword [ebp + 0x3ad0]
adc edx, 0
test ecx, ecx
je 0x100170d3
cmp dword [ecx + 0x2eec], 1
adc edx, 0
test edx, edx
jne 0x1001722c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x5c]
mov edi, eax
mov dword [eax + 0x7c], 1
mov dword [eax + 0x10], 1
mov dword [ebp + 0x3ad8], ecx
xor eax, eax
test ecx, ecx
cmovns eax, ecx
mov dword [ebp + 0x3adc], ecx
sub ecx, eax
mov eax, ecx
add eax, eax
mov dword [ebp + 0x61c], 0
mov dword [ebp + 0x2010], 0
mov dword [ebp + 0x2014], 0
mov dword [ebp + 0x3bec], 0
mov dword [ebp + 0x3be8], 0
mov dword [edi + 4], eax
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x3a90]
mov dword [ebp + 0xcb8], 2
test eax, eax
je 0x1001a1ec
lea ebx, [ebp + 0x3a90]
mov dword [esp], ebx
call fcn.1002d880
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1002d990
mov edi, dword [ebp + 0x3a90]
test edi, edi
jne 0x10017161
mov ecx, dword [ebp + 0x3b3c]
mov eax, dword [ebp + 0x3b38]
mov ebx, ecx
mov dword [esp + 0x30], eax
mov dword [eax + 4], 0
mov dword [esp + 0x50], 3
mov dword [ebx + 4], 0
mov dword [esp + 0x54], 5
mov dword [ebp + 0x3ae0], 0xffffffff
mov edi, dword [esp + 0x30]
cmp dword [ebp + 0x60], 1
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x5c], eax
mov eax, 1
jg 0x100172d3
jmp 0x100172cd
mov eax, dword [ebp + 0x4884]
shl eax, 4
cmp dword [ebp + 0x20], eax
jne 0x10016cfc
jmp 0x10016d08
mov dword [esi + 0x78], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x10019c2e
mov edi, dword [eax + 0xa0]
test edi, edi
je 0x10018bb5
mov eax, dword [eax + 0x320]
cmp eax, 1
sbb eax, eax
not eax
add eax, 5
mov dword [esi + 0x78], eax
jmp 0x10016dba
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 0x7c]
mov edi, dword [esp + 0x30]
test ecx, ecx
mov edx, dword [edi + 0x5c]
jne 0x10019bd5
mov esi, dword [ebp + 0x3adc]
mov dword [ebp + 0x2010], 0
mov dword [ebp + 0x2014], 0
mov dword [ebp + 0x3bec], 0
test esi, esi
cmovns ecx, esi
mov esi, edx
sub esi, ecx
mov ecx, esi
add ecx, ecx
cmp eax, 1
mov dword [ebp + 0x3be8], 0
mov dword [edi + 4], ecx
mov dword [ebx + 4], ecx
je 0x10017143
cmp eax, 2
je 0x1001957d
cmp eax, 3
je 0x10019470
cmp eax, 4
je 0x1001927e
mov ecx, dword [ebp + 0x3b3c]
mov dword [ebp + 0xcb8], 1
mov dword [esp + 0x50], 0
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x5c], edx
mov dword [esp + 0x54], 1
mov edi, dword [esp + 0x30]
xor eax, eax
mov dword [ebx + 0x74], eax
mov edx, dword [edi + 0x1c]
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x2f00]
mov dword [ebx + 0x2f00], eax
mov eax, dword [edi + 0x2f04]
mov dword [ebx + 0x2f04], eax
mov eax, dword [edi + 0x18]
mov dword [edi + 0x2f00], 0
mov dword [edi + 0x2f04], 0
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x3af8]
test eax, eax
mov dword [esp + 0x34], eax
je 0x10017b27
lea eax, [ebp + 0x3b10]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x618]
cmp dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
jge 0x10018ccc
mov edi, dword [esp + 0x34]
sub eax, edi
cdq
idiv edi
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
mov esi, dword [edi + 0x28]
mov edi, dword [edi + 0x2c]
lea edx, [eax + edx*8]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x24], edx
cdq
idiv dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], edi
mov eax, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov eax, dword [eax + 0x10]
cmp eax, 1
mov dword [esp + 0x70], eax
je 0x10018cb5
mov eax, dword [ebp + 0xcb8]
mov ebx, dword [ecx + 4]
mov dword [ebp + 0x3b40], 0
mov dword [ebp + 0x6004], 0
cmp eax, 2
mov dword [ebp + 0x3b44], 0
mov dword [ebp + 0x6008], 0
mov dword [esp + 0x64], eax
je 0x1001782c
mov eax, dword [ebp + 0x3a90]
test eax, eax
mov dword [esp + 0x6c], eax
je 0x10019453
lea edx, [ebp + 0x3a94]
xor edi, edi
xor ecx, ecx
jmp 0x1001740a
lea esi, [ecx + 1]
mov dword [ebp + 0x3b40], esi
mov dword [ebp + ecx*4 + 0x3b48], eax
mov ecx, esi
add edx, 4
mov eax, dword [edx - 4]
test eax, eax
je 0x10017437
mov esi, dword [eax + 0x2eec]
test esi, esi
jne 0x10017400
cmp ebx, dword [eax + 4]
jg 0x100173ee
jge 0x10017400
lea esi, [edi + 1]
add edx, 4
mov dword [ebp + 0x3b44], esi
mov dword [ebp + edi*4 + 0x3b94], eax
mov eax, dword [edx - 4]
mov edi, esi
test eax, eax
jne 0x1001740a
mov eax, ecx
sub eax, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x74], edi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x5c]
mov ecx, ebp
mov edi, ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x3c], 0
mov edx, dword [edi + 0x3b48]
sub eax, 1
xor ebp, ebp
mov edi, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [edi + 0x3be0], edx
mov edi, dword [esp + 0x3c]
lea eax, [edi + edi*8]
lea ebx, [edi + eax*2]
cmp ebp, dword [esp + 0x40]
jge 0x10017548
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x1001a143
mov eax, dword [ecx + 0x3be4]
mov edx, dword [ecx + ebp*4 + 0x3b98]
mov eax, dword [eax + 4]
cmp dword [edx + 4], eax
lea eax, [ebp + 1]
setl dl
test dl, dl
je 0x100174cb
lea edx, [eax + ebx + 0xed0]
mov edi, dword [esp + 0x48]
mov edx, dword [ecx + edx*4 + 8]
mov dword [edi + 0x3be0], edx
add ebp, ebx
mov esi, dword [esp + 0x30]
lea edi, [ecx + ebp*4]
mov dword [esp + 0x38], edi
mov edi, dword [edi + 0x3b48]
cmp dword [ecx + 0x2f4], 5
mov esi, dword [esi + 0x5c]
mov dword [esp + 0x34], edi
mov edi, dword [edi + 0x5c]
je 0x10017a00
mov edx, esi
sub edx, edi
mov edi, edx
sar edi, 0x1f
xor edx, edi
sub edx, edi
lea edi, [eax + ebx + 0xed0]
mov edi, dword [ecx + edi*4 + 8]
sub esi, dword [edi + 0x5c]
mov ebp, esi
sar ebp, 0x1f
xor esi, ebp
sub esi, ebp
cmp esi, edx
mov ebp, eax
jge 0x10017483
mov eax, dword [esp + 0x38]
mov dword [eax + 0x3b48], edi
mov edi, dword [esp + 0x34]
lea eax, [ebp + ebx + 0xed0]
xor ebp, ebp
cmp ebp, dword [esp + 0x40]
mov dword [ecx + eax*4 + 8], edi
jl 0x1001748d
add dword [esp + 0x3c], 1
add dword [esp + 0x60], 0x4c
add dword [esp + 0x48], 4
cmp dword [esp + 0x3c], 2
je 0x10017571
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x60]
mov eax, dword [eax + 0x3b40]
jmp 0x10017460
mov eax, dword [ecx + 0x2010]
mov ebp, ecx
test eax, eax
je 0x100175e6
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x68]
sub edi, eax
cmp edi, ebx
mov ecx, edi
mov dword [esp + 0x34], edi
jg 0x100175e6
mov eax, dword [ebp + 0x2014]
lea edx, [ebp + ebx*4 + 0x3b48]
mov edi, dword [ebp + 0x61c]
lea esi, [ebp + ecx*4 + 0x3b44]
mov dword [esp + 0x38], eax
lea eax, [ebp + eax*8 + 0x201c]
mov ecx, dword [edx]
mov ebx, edi
sub edx, 4
add eax, 8
sub ebx, dword [ecx + 0x70]
mov ecx, dword [ecx + 4]
mov dword [eax - 0xc], ebx
mov dword [eax - 8], ecx
cmp edx, esi
jne 0x100175b6
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x38]
lea eax, [eax + edi + 1]
sub eax, dword [esp + 0x34]
mov dword [ebp + 0x2014], eax
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x10018ae5
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3a94]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3a98]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3a9c]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3aa0]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3aa4]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3aa8]
test eax, eax
je 0x10018ae5
mov edi, dword [eax + 0x2eec]
test edi, edi
jne 0x100177be
mov eax, dword [ebp + 0x3aac]
test eax, eax
je 0x10018ae5
mov esi, dword [eax + 0x2eec]
test esi, esi
jne 0x100177be
mov eax, dword [ebp + 0x3ab0]
test eax, eax
je 0x10018ae5
mov ebx, dword [eax + 0x2eec]
test ebx, ebx
jne 0x100177be
mov eax, dword [ebp + 0x3ab4]
test eax, eax
je 0x10018ae5
mov ecx, dword [eax + 0x2eec]
test ecx, ecx
jne 0x100177be
mov eax, dword [ebp + 0x3ab8]
test eax, eax
je 0x10018ae5
mov edx, dword [eax + 0x2eec]
test edx, edx
jne 0x100177be
mov eax, dword [ebp + 0x3abc]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3ac0]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3ac4]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3ac8]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3acc]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov eax, dword [ebp + 0x3ad0]
test eax, eax
je 0x10018ae5
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100177be
mov edi, dword [ebp + 0x3ad4]
test edi, edi
je 0x10018ae5
mov dword [ebp + 0x3be8], 1
mov eax, dword [esp + 0x74]
mov edx, dword [ebp + 0x3af0]
mov edi, dword [esp + 0x5c]
cmp eax, edx
cmovle edx, eax
mov eax, dword [ebp + 0x3aec]
cmp dword [ebp + 0x58], eax
cmovle eax, dword [ebp + 0x58]
mov dword [ebp + 0x3b44], edx
cmp eax, edi
cmovg eax, edi
mov edi, dword [esp + 0x70]
mov dword [ebp + 0x3b40], eax
lea ecx, [edi - 4]
cmp ecx, 1
jbe 0x1001941f
cmp dword [esp + 0x70], 3
je 0x100190fa
lea ecx, [eax + edx]
cmp ecx, 0x10
jg 0x100190cd
mov dword [ebp + 0x6004], eax
mov dword [ebp + 0x6008], edx
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10018a59
mov eax, dword [ebp + 4]
test eax, eax
jle 0x100178b3
lea ebx, [ebp + 0x35c]
lea edi, [ebp + eax*4 + 0x35c]
nop
lea esi, [esi]
mov eax, dword [ebx]
add ebx, 4
mov esi, dword [eax + 0x5ec]
mov ecx, esi
mov edx, esi
add esi, dword [eax + 0x5e8]
and ecx, 3
sub edx, ecx
mov dword [eax + 0x5f0], edx
mov dword [eax + 0x5f8], esi
mov esi, ecx
neg esi
lea esi, [esi*8 + 0x20]
mov dword [eax + 0x600], esi
mov esi, 4
sub esi, ecx
mov ecx, esi
shl ecx, 3
mov dword [eax + 0x5f4], edx
mov edx, dword [edx]
bswap edx
shr edx, cl
cmp ebx, edi
mov dword [eax + 0x5fc], edx
mov dword [eax + 0x5dc], 0
jne 0x10017850
mov edi, dword [ebp + 0x2f8]
test edi, edi
je 0x10017b38
mov eax, dword [ebp + 0xcb8]
cmp eax, 2
je 0x10019da1
test eax, eax
je 0x10018d05
cmp eax, 1
mov edx, 5
setne bl
mov ecx, 0xf
movzx ebx, bl
cmovne edx, ecx
lea ebx, [ebx + ebx*4 + 2]
mov edi, dword [ebp + 0x5f4]
mov esi, dword [ebp + 0x600]
mov eax, dword [ebp + 0x5dc]
mov dword [esp + 0x30], edx
mov edx, 0x20
mov ecx, edi
sub ecx, dword [ebp + 0x5f0]
sub edx, esi
shl eax, 5
add eax, dword [ebp + 0x5e4]
lea ecx, [edx + ecx*8]
test ecx, ecx
lea edx, [ecx + 7]
cmovs ecx, edx
mov edx, dword [esp + 0x30]
sar ecx, 3
add ecx, dword [ebp + 0x5ec]
cmp esi, 3
mov dword [eax], 0
mov dword [eax + 4], 9
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
jg 0x10019404
mov eax, dword [ebp + 0x5fc]
mov ecx, 3
sub ecx, esi
shr ebx, cl
mov ecx, esi
shl eax, cl
or ebx, eax
mov dword [ebp + 0x5fc], ebx
bswap ebx
mov dword [edi], ebx
mov eax, dword [ebp + 0x5f4]
lea edi, [eax + 4]
mov dword [ebp + 0x5f4], edi
lea eax, [esi + 0x1d]
lea ecx, [eax - 1]
test ecx, ecx
mov dword [ebp + 0x5fc], edx
mov dword [ebp + 0x600], ecx
jne 0x100193d0
bswap edx
mov dword [edi], edx
mov edx, dword [ebp + 0x5fc]
mov ebx, 0x20
add dword [ebp + 0x5f4], 4
shl edx, cl
mov dword [ebp + 0x5fc], edx
mov dword [ebp + 0x600], ebx
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov eax, dword [ebp + 0x5dc]
add eax, 0x7ffffff
shl eax, 5
add eax, dword [ebp + 0x5e4]
mov ebx, dword [eax + 0x14]
add ebx, 0xa
jmp 0x10017b3d
mov ebp, esi
mov edx, edi
and ebp, 0xfffffffe
and edx, 0xfffffffe
mov dword [esp + 0x44], esi
mov esi, ebp
sub esi, edx
xor edi, dword [esp + 0x44]
mov edx, esi
sar esi, 0x1f
xor edx, esi
sub edx, esi
and edi, 1
lea esi, [eax + ebx + 0xed0]
add edx, edi
mov edi, dword [ecx + esi*4 + 8]
mov esi, dword [edi + 0x5c]
and esi, 0xfffffffe
sub ebp, esi
mov esi, ebp
sar esi, 0x1f
xor ebp, esi
sub ebp, esi
mov esi, dword [esp + 0x44]
xor esi, dword [edi + 0x5c]
and esi, 1
add esi, ebp
jmp 0x10017519
mov dword [eax + 0x5a0], 0
mov dword [esp + 4], eax
mov eax, dword [eax + 0x5b8]
mov dword [esp], eax
call fcn.100562a0
test eax, eax
je 0x10018eba
add esp, 0x12c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp + 0x2014]
lea esi, [ebp + 0x3a90]
test edx, edx
jle 0x10017af5
xor edi, edi
lea esi, [ebp + 0x3a90]
mov eax, dword [ebp + 0x3a90]
test eax, eax
je 0x10017ae8
mov ebx, esi
jmp 0x10017ab9
add ebx, 4
mov eax, dword [ebx]
test eax, eax
je 0x10017ae2
mov ecx, dword [ebp + edi*8 + 0x201c]
cmp dword [eax + 4], ecx
jne 0x10017ab0
mov dword [esp], ebx
add ebx, 4
call fcn.1002d920
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1002d990
mov eax, dword [ebx]
test eax, eax
jne 0x10017ab9
mov edx, dword [ebp + 0x2014]
add edi, 1
cmp edi, edx
jl 0x10017a9d
mov ebx, dword [ebp + 0x3b3c]
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.1002d850
mov eax, dword [ebp + 0x20e8]
mov eax, dword [ebp + eax*4 + 0x3a90]
test eax, eax
je 0x10016f09
mov dword [esp], esi
call fcn.1002d920
mov dword [esp + 4], eax
jmp 0x10016f01
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x28]
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x20], eax
jmp 0x1001737a
mov ebx, 5
mov eax, dword [esp + 0x54]
mov esi, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x3b38]
mov dword [ebp + 0x624], eax
mov eax, dword [esp + 0x50]
test esi, esi
mov dword [ebp + 0x628], eax
je 0x10017b76
mov eax, dword [edx + 0x10]
lea ecx, [eax - 1]
cmp ecx, 1
jbe 0x100196fc
cmp eax, 3
je 0x100199c2
mov eax, dword [edx + 0x7c]
test eax, eax
je 0x10017b9e
mov eax, dword [ebp + 0x2fc]
test eax, eax
jne 0x10019840
cmp dword [ebp + 0x620], 1
je 0x1001975e
mov edx, dword [ebp + 0x3b38]
mov eax, dword [edx + 0x2ef0]
test eax, eax
jle 0x10017ce5
lea eax, [ebp + 0x5f0]
xor esi, esi
mov dword [esp + 0x30], eax
jmp 0x10017c40
mov edx, dword [ebp + 0x5dc]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
cmp dword [ebp + 0x300], 0
mov ecx, dword [eax + 0x14]
mov eax, 5
je 0x10017bfa
cmp dword [ebp + 0x88], 0
jne 0x10017bfa
xor eax, eax
cmp edx, 1
sete al
add eax, 4
mov edx, dword [ebp + 0x3b38]
add eax, ecx
add ebx, eax
mov eax, dword [edx + 0x2ef8]
test eax, eax
je 0x10017c31
mov edx, dword [edx + 0x2ef4]
mov edx, dword [edx + edi + 8]
mov dword [esp], edx
call eax
mov edx, dword [ebp + 0x3b38]
mov eax, dword [edx + 0x2ef4]
mov dword [eax + edi + 8], 0
add esi, 1
cmp dword [edx + 0x2ef0], esi
jle 0x10017ce5
mov ecx, dword [ebp + 0x5f4]
mov edi, 0x20
mov eax, dword [ebp + 0x5dc]
sub edi, dword [ebp + 0x600]
sub ecx, dword [ebp + 0x5f0]
shl eax, 5
lea ecx, [edi + ecx*8]
add eax, dword [ebp + 0x5e4]
test ecx, ecx
lea edi, [ecx + 7]
cmovs ecx, edi
sar ecx, 3
add ecx, dword [ebp + 0x5ec]
mov dword [eax], 0
lea edi, [esi + esi*2]
mov dword [eax + 4], 6
shl edi, 2
mov dword [eax + 8], 1
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
mov eax, dword [edx + 0x2ef4]
add eax, edi
mov edx, dword [eax + 4]
mov dword [esp + 0xc], edx
mov edx, dword [eax]
mov dword [esp + 8], edx
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.1001d370
mov eax, ebp
call fcn.1000a630
test eax, eax
je 0x10017bc0
lea esi, [esi]
jmp 0x10017a75
mov eax, dword [edx + 0x2ef8]
test eax, eax
je 0x10017d14
mov edx, dword [edx + 0x2ef4]
mov dword [esp], edx
call eax
mov edx, dword [ebp + 0x3b38]
mov dword [edx + 0x2ef4], 0
mov dword [edx + 0x2ef8], 0
mov eax, dword [edx + 0x7c]
test eax, eax
je 0x10017fd3
mov eax, dword [ebp + 0x2fc]
test eax, eax
je 0x10017e14
mov eax, dword [edx + 0x5c]
test eax, eax
jne 0x10017e14
mov eax, dword [ebp + 0x88]
test eax, eax
jne 0x10017e14
mov ecx, dword [ebp + 0x5f4]
mov edx, 0x20
mov eax, dword [ebp + 0x5dc]
sub ecx, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
shl eax, 5
lea edx, [edx + ecx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.100243c0
test eax, eax
jne 0x10017a75
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov edx, dword [ebp + 0x5dc]
mov edi, dword [ebp + 0x300]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
test edi, edi
mov ecx, dword [eax + 0x14]
mov eax, 5
je 0x10017e0a
mov esi, dword [ebp + 0x88]
test esi, esi
jne 0x10017e0a
xor eax, eax
cmp edx, 1
sete al
add eax, 4
mov edx, dword [ebp + 0x3b38]
add eax, ecx
add ebx, eax
cmp dword [edx + 0x10], 1
je 0x10017f05
mov eax, dword [ebp + 0x80]
xor ecx, ecx
test eax, eax
jne 0x10017e41
mov edx, dword [ebp + 0x4880]
mov eax, dword [ebp + 0x60]
lea ecx, [edx - 1]
cmp edx, eax
cmovg ecx, eax
add ecx, dword [ebp + 0x70]
sub ecx, 1
mov esi, dword [ebp + 0x5f4]
mov edx, 0x20
mov eax, dword [ebp + 0x5dc]
sub esi, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
shl eax, 5
lea edx, [edx + esi*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea esi, [edx + 7]
cmovs edx, esi
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.10023f80
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov edx, dword [ebp + 0x5dc]
mov edi, dword [ebp + 0x300]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
test edi, edi
mov ecx, dword [eax + 0x14]
mov eax, 5
je 0x10017f01
mov esi, dword [ebp + 0x88]
test esi, esi
jne 0x10017f01
xor eax, eax
cmp edx, 1
sete al
add eax, 4
add eax, ecx
add ebx, eax
mov eax, dword [ebp + 0x2f4]
test eax, eax
js 0x10017fd3
mov ecx, dword [ebp + 0x5f4]
mov edx, 0x20
mov eax, dword [ebp + 0x5dc]
sub ecx, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
shl eax, 5
lea edx, [edx + ecx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.10024df0
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov edx, dword [ebp + 0x5dc]
mov edi, dword [ebp + 0x300]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
test edi, edi
mov ecx, dword [eax + 0x14]
mov eax, 5
je 0x10017fcf
mov esi, dword [ebp + 0x88]
test esi, esi
jne 0x10017fcf
xor eax, eax
cmp edx, 1
sete al
add eax, 4
add eax, ecx
add ebx, eax
mov eax, dword [ebp + 0x21a0]
test eax, eax
jne 0x10018994
mov eax, dword [ebp + 0x2168]
test eax, eax
jne 0x10018994
mov ecx, dword [ebp + 0x3b38]
mov eax, dword [ecx + 0x10]
sub eax, 4
cmp eax, 1
jbe 0x1001800e
mov edi, dword [ebp + 0x2230]
test edi, edi
jne 0x10019cc6
mov esi, dword [ebp + 0x88]
mov edx, dword [ecx + 0x7c]
test edx, edx
je 0x10018026
mov eax, dword [ebp + 0x6c]
test eax, eax
jne 0x10018d55
test esi, esi
je 0x10018283
mov edx, dword [ebp + 0x5f4]
mov edi, 0x20
mov eax, dword [ebp + 0x5dc]
mov ecx, edi
sub edx, dword [ebp + 0x5f0]
sub ecx, dword [ebp + 0x600]
lea esi, [ebp + 0x5f0]
shl eax, 5
lea edx, [ecx + edx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 0xc
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.10025260
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov eax, dword [ebp + 0x5dc]
mov ecx, dword [ebp + 0x5e4]
sub edi, dword [ebp + 0x600]
add eax, 0x7ffffff
shl eax, 5
mov edx, dword [ecx + eax + 0x14]
lea eax, [ecx + eax + 0x20]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 8], 1
lea ebx, [ebx + edx + 5]
mov edx, dword [ebp + 0x5f4]
sub edx, dword [ebp + 0x5f0]
mov dword [eax + 0x14], 0
mov dword [esp + 0x30], ebx
lea edx, [edi + edx*8]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], edx
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.100259c0
test eax, eax
js 0x10017a75
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov ecx, dword [ebp + 0x5dc]
mov edx, 5
mov ebx, dword [ebp + 0x5e4]
lea eax, [ecx + 0x7ffffff]
shl eax, 5
cmp dword [ebp + 0x300], 0
mov edi, dword [ebx + eax + 0x14]
je 0x10018185
cmp dword [ebp + 0x88], 0
jne 0x10018185
xor edx, edx
cmp ecx, 1
sete dl
add edx, 4
add edx, edi
mov edi, 0x2200
add edx, dword [esp + 0x30]
mov ecx, 0xb54
cmp dword [ebp + 0x20], 0x438
lea eax, [ebx + eax + 0x20]
mov ebx, dword [ebp + 0x5f4]
mov dword [esp + 0x30], edx
mov edx, 0x1200
cmovne edi, edx
mov dx, 0x1694
cmovne edx, ecx
mov cx, 0x20
sub ebx, dword [ebp + 0x5f0]
sub ecx, dword [ebp + 0x600]
mov dword [eax], 0
mov dword [eax + 4], 6
lea ecx, [ecx + ebx*8]
test ecx, ecx
lea ebx, [ecx + 7]
cmovs ecx, ebx
sar ecx, 3
add ecx, dword [ebp + 0x5ec]
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.10025d30
test eax, eax
js 0x10017a75
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov ecx, dword [ebp + 0x5dc]
mov esi, dword [ebp + 0x300]
lea eax, [ecx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
mov edx, dword [eax + 0x14]
sub edi, edx
test esi, esi
je 0x100190bb
mov ebx, dword [ebp + 0x88]
test ebx, ebx
jne 0x100190bb
cmp ecx, 1
je 0x100190bb
sub edi, 4
mov dword [eax + 0x1c], edi
add edx, edi
mov eax, 4
mov ebx, dword [esp + 0x30]
add eax, edx
mov ecx, dword [ebp + 0x3b38]
add ebx, eax
shl ebx, 3
mov dword [esp + 8], ebx
mov eax, dword [ecx + 0x14]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1004ac60
mov dword [esp], ebp
call fcn.1004bca0
mov edx, dword [ebp + 0x3b3c]
mov edi, dword [esp + 0x150]
mov dword [esp + 0x34], eax
add eax, 1
mov dword [edx + 0x14], eax
mov dword [edi + 4], eax
mov eax, dword [ebp + 0x2c4]
test eax, eax
je 0x100184be
cmp dword [ebp + 0xcb8], 2
je 0x100184be
mov dword [esp], ebp
call fcn.10047780
mov eax, dword [ebp + 0x3a90]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3a94]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3a98]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3a9c]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3aa0]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3aa4]
test eax, eax
je 0x1001a05d
mov edi, dword [eax + 0x2eec]
test edi, edi
jne 0x100184b4
mov eax, dword [ebp + 0x3aa8]
test eax, eax
je 0x1001a05d
mov esi, dword [eax + 0x2eec]
test esi, esi
jne 0x100184b4
mov eax, dword [ebp + 0x3aac]
test eax, eax
je 0x1001a05d
mov ebx, dword [eax + 0x2eec]
test ebx, ebx
jne 0x100184b4
mov eax, dword [ebp + 0x3ab0]
test eax, eax
je 0x1001a05d
mov ecx, dword [eax + 0x2eec]
test ecx, ecx
jne 0x100184b4
mov eax, dword [ebp + 0x3ab4]
test eax, eax
je 0x1001a05d
mov edx, dword [eax + 0x2eec]
test edx, edx
jne 0x100184b4
mov eax, dword [ebp + 0x3ab8]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3abc]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3ac0]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3ac4]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3ac8]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3acc]
test eax, eax
je 0x1001a05d
mov eax, dword [eax + 0x2eec]
test eax, eax
jne 0x100184b4
mov eax, dword [ebp + 0x3ad0]
test eax, eax
je 0x1001a05d
mov edi, dword [eax + 0x2eec]
test edi, edi
jne 0x100184b4
mov esi, dword [ebp + 0x3ad4]
test esi, esi
je 0x1001a05d
mov dword [ebp + 0x3be8], 1
mov ebx, dword [ebp + 0x3b40]
test ebx, ebx
jne 0x10018ceb
mov eax, dword [esp + 0x34]
lea ecx, [ebp + 0x20c0]
cmp dword [esp + 0x54], 5
lea esi, [ebp + 0xcb0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x61c]
mov dword [esp + 8], eax
je 0x10019c80
lea eax, [ebp + 0x21cc]
mov edx, esi
mov dword [esp], eax
mov eax, ebp
mov dword [esp + 4], 0xffffffff
call fcn.100094e0
mov edx, dword [ebp + 0x3b40]
mov eax, 1
mov ecx, dword [ebp + 0x3b44]
test edx, edx
mov edx, eax
cmovg edx, dword [ebp + 0x3b40]
test ecx, ecx
cmovg eax, dword [ebp + 0x3b44]
cmp edx, dword [ebp + 0x21e0]
mov dword [ebp + 0xcf8], edx
mov dword [ebp + 0xcfc], eax
je 0x10018d37
mov dword [ebp + 0xcf4], 1
mov eax, dword [ebp + 0x3b38]
cmp dword [eax + 0x10], 4
je 0x10019c47
mov ecx, dword [ebp + 0x20e0]
mov eax, dword [ebp + 0x3b3c]
mov edx, dword [ebp + 0xcc8]
test ecx, ecx
mov dword [eax + 0x70], edx
jne 0x100185c4
mov ebx, dword [ebp + 0xa0]
mov esi, dword [eax + 4]
test ebx, ebx
mov dword [ebp + 0xcdc], esi
je 0x10019bc4
mov edx, dword [ebp + 0x320]
test edx, edx
je 0x10019bb5
mov edx, 1
mov ebx, 1
add esi, ecx
mov dword [ebp + 0xce0], ebx
mov ebx, ecx
mov dword [ebp + 0xcdc], esi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov dword [esp], ebp
call fcn.10057d30
mov ebx, dword [ebp + 0xcb8]
cmp ebx, 1
je 0x10019ca8
mov edx, dword [ebp + 0x3b40]
mov eax, dword [ebp + 0x3b38]
test edx, edx
jle 0x10018782
mov ecx, dword [ebp + 0x3b48]
cmp edx, 1
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xa90], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b4c]
cmp edx, 2
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xa94], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b50]
cmp edx, 3
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xa98], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b54]
cmp edx, 4
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xa9c], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b58]
cmp edx, 5
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xaa0], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b5c]
cmp edx, 6
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xaa4], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b60]
cmp edx, 7
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xaa8], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b64]
cmp edx, 8
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xaac], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b68]
cmp edx, 9
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xab0], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b6c]
cmp edx, 0xa
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xab4], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b70]
cmp edx, 0xb
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xab8], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b74]
cmp edx, 0xc
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xabc], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b78]
cmp edx, 0xd
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xac0], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b7c]
cmp edx, 0xe
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xac4], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b80]
cmp edx, 0xf
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xac8], ecx
jle 0x10018782
mov ecx, dword [ebp + 0x3b84]
mov ecx, dword [ecx + 0xe4]
mov dword [eax + 0xacc], ecx
mov ecx, dword [ebp + 0xccc]
mov dword [eax + 0x2eb4], 0
shl edx, cl
test edx, edx
jle 0x100187c8
lea edx, [edx + edx*8]
shl edx, 4
lea eax, [ebp + 0xe3c]
lea edx, [ebp + edx + 0xe3c]
mov dword [eax], 0
add eax, 0x90
mov dword [eax - 0x60], 0
mov dword [eax - 0x30], 0
cmp eax, edx
jne 0x100187ab
test ebx, ebx
jne 0x10018e47
mov ebx, dword [ebp + 0x210]
test ebx, ebx
jle 0x10018e47
mov ecx, dword [ebp + 0xa0]
mov dword [esp + 0x40], 0x20
shl dword [esp + 0x40], cl
mov edi, dword [esp + 0x40]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov eax, dword [ebp + 0x3b40]
mov dword [esp + 0x44], 0
add edi, edi
mov dword [esp + 0x5c], edi
lea edi, [ebp + 0xe3c]
mov dword [esp + 0x54], edi
xor edi, edi
mov dword [esp + 0x3c], 0xffffffff
test eax, eax
jle 0x10018d9c
lea ecx, [ebp + 0xe10]
mov esi, dword [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x34], ecx
lea ecx, [edi + edi*2]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], edi
shl dword [esp + 0x38], 4
jmp 0x10018901
mov eax, dword [esp + 0x30]
xor edx, edx
test eax, eax
mov eax, ecx
setne dl
mov edi, dword [esp + edx*4 + 0x90]
test edi, edi
jne 0x100188b4
lea edi, [edx + edx]
mov dword [esp + edx*4 + 0x90], 1
add edx, edi
shl edx, 4
test ecx, ecx
mov dword [ebp + edx + 0xe30], ecx
js 0x10018d70
cmp ecx, 7
mov edx, 7
cmovle edx, ecx
cmp ecx, edx
jne 0x10018d70
mov eax, dword [esi - 0xc]
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x3c], eax
je 0x100188d6
mov dword [esp + 8], 0x814
mov dword [esp + 4], str.encoder_encoder.c
mov dword [esp], str.h__sh.weight_j__i_.i_denom__denom
call fcn.102dafab
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1001a195
mov eax, dword [ebp + 0x3b40]
add ebx, 1
add esi, 0x90
add dword [esp + 0x34], 0x90
cmp ebx, eax
jge 0x10018d98
lea edx, [ebx + ebx*8]
shl edx, 4
add edx, dword [esp + 0x38]
add edx, dword [ebp + 0x3b38]
mov ecx, dword [edx + 0x1bc]
test ecx, ecx
je 0x100188e8
lea eax, [edx + 0x190]
mov edx, dword [edx + 0x190]
mov dword [esi - 0x2c], edx
mov edx, dword [eax + 4]
mov dword [esi - 0x28], edx
mov edx, dword [eax + 8]
mov dword [esi - 0x24], edx
mov edx, dword [eax + 0xc]
mov dword [esi - 0x20], edx
mov edx, dword [eax + 0x10]
mov dword [esi - 0x1c], edx
mov edx, dword [eax + 0x14]
mov dword [esi - 0x18], edx
mov edx, dword [eax + 0x18]
mov dword [esi - 0x14], edx
mov edx, dword [eax + 0x1c]
mov dword [esi - 0x10], edx
mov ecx, dword [eax + 0x20]
mov dword [esi - 0xc], ecx
mov edx, dword [eax + 0x24]
mov dword [esi - 8], edx
mov edx, dword [eax + 0x28]
mov dword [esi - 4], edx
mov eax, dword [eax + 0x2c]
mov dword [esi], eax
mov eax, 1
shl eax, cl
cmp dword [esi - 8], eax
jne 0x10018860
test edx, edx
jne 0x10018860
mov dword [esi], 0
mov eax, dword [ebp + 0x3b40]
jmp 0x100188e8
mov ecx, dword [ebp + 0x5f4]
mov edx, 0x20
mov eax, dword [ebp + 0x5dc]
sub ecx, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
shl eax, 5
lea edx, [edx + ecx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.10024920
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov edx, dword [ebp + 0x5dc]
mov edi, dword [ebp + 0x300]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
test edi, edi
mov ecx, dword [eax + 0x14]
mov eax, 5
je 0x10018a50
mov esi, dword [ebp + 0x88]
test esi, esi
jne 0x10018a50
xor eax, eax
cmp edx, 1
sete al
add eax, 4
add eax, ecx
add ebx, eax
jmp 0x10017fef
mov edx, dword [ebp + 0x5ec]
mov ecx, edx
mov eax, edx
add edx, dword [ebp + 0x5e8]
and ecx, 3
sub eax, ecx
mov dword [ebp + 0x5f0], eax
mov dword [ebp + 0x5f8], edx
mov edx, ecx
neg edx
lea edx, [edx*8 + 0x20]
mov dword [ebp + 0x600], edx
mov edx, 4
sub edx, ecx
lea ecx, [edx*8]
mov dword [ebp + 0x5f4], eax
mov eax, dword [eax]
bswap eax
shr eax, cl
mov dword [ebp + 0x5fc], eax
mov dword [ebp + 0x5dc], 0
jmp 0x100178b3
mov eax, dword [esp + 0x150]
mov dword [eax], 0
add esp, 0x12c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.100293d0
jmp 0x10016e1f
xor eax, eax
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x64], 1
sete al
xor edi, edi
mov dword [esp + 0x38], eax
sub ebx, 1
cmp edi, 1
lea eax, [ebp + 0x3b4c]
mov dword [esp + 0x34], eax
je 0x10018b61
mov esi, dword [esp + 0x64]
xor edx, edx
mov ecx, dword [esp + 0x34]
test esi, esi
je 0x10018baf
jmp 0x10018b3b
mov esi, ecx
add edx, 1
mov eax, dword [esi]
add ecx, 4
mov esi, dword [esi - 4]
mov eax, dword [eax + 4]
sub eax, dword [esi + 4]
test eax, eax
jg 0x10019086
cmp edx, ebx
jl 0x10018b20
add dword [esp + 0x34], 0x4c
cmp dword [esp + 0x38], edi
jle 0x100177c8
mov ebx, dword [ebp + 0x3b44]
mov edi, 1
sub ebx, 1
cmp edi, 1
jne 0x10018b0b
mov ecx, dword [esp + 0x64]
xor eax, eax
mov edx, dword [esp + 0x34]
test ecx, ecx
je 0x100190b2
jmp 0x10018b8e
mov ecx, edx
add eax, 1
mov esi, dword [ecx]
add edx, 4
mov ecx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
cmp dword [esi + 4], ecx
js 0x10019088
cmp eax, ebx
jl 0x10018b75
jmp 0x10018b3f
mov esi, ecx
add edx, 1
mov eax, dword [esi]
add ecx, 4
mov esi, dword [esi - 4]
mov eax, dword [eax + 0x70]
sub eax, dword [esi + 0x70]
test eax, eax
jg 0x10019086
cmp edx, ebx
jl 0x10018b94
jmp 0x10018b3f
mov dword [esi + 0x78], 1
jmp 0x10016dba
mov eax, dword [ebp + 0x9480]
add eax, 0x30
mov dword [esp], eax
call fcn.100a9f90
mov eax, dword [ebp + 0x9480]
mov byte [eax], 1
mov eax, dword [ebp + 0x9480]
add eax, 0x48
mov dword [esp], eax
call fcn.100aa180
mov eax, dword [ebp + 0x9480]
add eax, 0x30
mov dword [esp], eax
call fcn.100aa000
jmp 0x10016e46
mov eax, dword [ebp + 0x610]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.10012770
mov dword [ebp + 0x614], 0
jmp 0x10016e99
mov eax, dword [ebp + 0x3b38]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x3bfc], edx
mov dword [ebp + 0x3bf8], eax
jmp 0x10016e8b
mov edx, dword [ebp + 4]
test edx, edx
jle 0x10016e76
xor ebx, ebx
jmp 0x10018c5b
add ebx, 1
cmp ebx, edx
jge 0x10016e76
mov eax, dword [ebp + ebx*4 + 0x35c]
mov ecx, dword [eax + 0x5a0]
test ecx, ecx
je 0x10018c50
mov dword [eax + 0x5a0], 0
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x5b8]
mov dword [esp], eax
call fcn.100562a0
test eax, eax
js 0x10017a75
mov edx, dword [ebp + 4]
jmp 0x10018c50
mov eax, dword [eax + 0x50]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.10047240
test eax, eax
je 0x10016df4
jmp 0x10017a75
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov dword [ebp + 0x680], eax
mov dword [ebp + 0x684], edx
jmp 0x10017392
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0x2c]
mov esi, dword [eax + 0x28]
mov edx, edi
mov eax, esi
sub eax, dword [ebp + 0x3b00]
sbb edx, dword [ebp + 0x3b04]
jmp 0x10017360
mov edx, dword [ebp + 0x3b48]
mov eax, dword [ebp + 0x3b3c]
mov edx, dword [edx + 4]
mov dword [eax + 0x90], edx
jmp 0x100184cc
mov edx, 3
mov ebx, 1
jmp 0x100178f2
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
sub eax, dword [ebp + 0x3b08]
sbb edx, dword [ebp + 0x3b0c]
mov dword [ebp + 0x3b00], eax
mov dword [ebp + 0x3b04], edx
jmp 0x10016d42
cmp dword [ebp + 0xcb8], 1
jne 0x10018556
cmp eax, dword [ebp + 0x21e4]
jne 0x1001854c
jmp 0x10018556
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov dword [ebp + 0x670], eax
mov dword [ebp + 0x674], edx
jmp 0x10018026
mov dword [esp + 8], 0x811
mov dword [esp + 4], str.encoder_encoder.c
mov dword [esp], str.x264_clip3__denom__0__7____denom
mov dword [esp + 0x3c], ecx
call fcn.102dafab
mov eax, dword [esi - 0xc]
jmp 0x100188b4
mov edi, dword [esp + 0x30]
add edi, 1
add dword [esp + 0x54], 0x30
cmp edi, 3
jne 0x10018832
mov ebx, dword [esp + 0x94]
test ebx, ebx
je 0x10018e18
test eax, eax
jle 0x10018e18
lea eax, [eax + eax*8]
mov esi, 1
lea edx, [ebp + 0xe94]
shl eax, 4
add eax, edx
jmp 0x10018de6
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x10018efe
add edx, 0x90
cmp edx, eax
je 0x10018e18
mov edi, dword [edx - 0x28]
test edi, edi
jne 0x10018dd1
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x10018ddc
mov ecx, dword [ebp + 0xe60]
mov edi, esi
add edx, 0x90
mov dword [edx - 0xbc], 0
shl edi, cl
mov dword [edx - 0xc0], edi
cmp edx, eax
jne 0x10018de6
mov eax, dword [esp + 0x90]
test eax, eax
jne 0x10018e2d
mov dword [ebp + 0xe30], 0
test ebx, ebx
jne 0x10019cbb
mov dword [ebp + 0xe60], 0
xor eax, eax
mov dword [ebp + 0xe90], eax
mov edi, dword [esp + 0x50]
test edi, edi
je 0x10018e56
add dword [ebp + 0x61c], 1
mov eax, dword [ebp + 0x4884]
cmp dword [ebp + 0x620], 1
mov dword [ebp + 0x5ac], 0
mov dword [esp + 0x3c], eax
mov dword [ebp + 0x5b0], eax
jle 0x10018f16
mov dword [esp + 8], ebp
mov dword [esp + 4], fcn.10009c10
mov eax, dword [ebp + 0x5b8]
mov dword [esp], eax
call fcn.10056260
mov dword [ebp + 0x5a0], 1
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
test edx, edx
jne 0x10018eba
mov edi, dword [eax + 0x5a0]
test edi, edi
jne 0x10017a51
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x5dc]
test eax, eax
je 0x1001906e
mov eax, dword [esp + 0x150]
mov edx, ebp
mov ecx, dword [esp + 0x144]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x148]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
call fcn.1000a990
add esp, 0x12c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp + 0xe60]
mov edi, esi
mov dword [edx + 4], 0
shl edi, cl
mov dword [edx], edi
jmp 0x10018ddc
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x10019ba0
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x38], eax
jle 0x10019db4
mov edi, dword [ebp + 0x34c]
mov eax, dword [ebp + 0x35c]
mov ecx, dword [ebp + 0xa0]
mov dword [esp + 0x140], ebp
mov dword [esp + 0x40], edi
mov edi, dword [ebp + 0x4880]
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], edi
lea edi, [ebp + 0x618]
mov ebp, eax
mov dword [esp + 0x48], edi
nop
lea esi, [esi]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
add dword [esp + 0x30], 1
sar eax, cl
mov esi, ebx
imul edi, eax
shr esi, 0x1f
add esi, ebx
sar esi, 1
mov dword [esp + 0x34], eax
lea eax, [edi + esi]
cdq
idiv dword [esp + 0x38]
mov ebx, eax
mov eax, dword [esp + 0x34]
shl ebx, cl
mov dword [ebp + 0x5ac], ebx
add eax, edi
mov edi, dword [esp + 0x38]
add eax, esi
mov esi, dword [esp + 0x44]
cdq
idiv edi
imul ebx, esi
mov dword [ebp + 0xcbc], ebx
shl eax, cl
mov dword [ebp + 0x5b0], eax
imul eax, esi
sub eax, 1
cmp dword [esp + 0x30], edi
mov dword [ebp + 0xcc0], eax
jge 0x10019dad
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x140]
test eax, eax
mov ebp, dword [edi + eax*4 + 0x35c]
je 0x10018f70
mov esi, edi
mov ecx, 0xd7
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x48]
lea eax, [ebp + 0x618]
mov dword [esp + 8], 0x7108
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.102da6f0
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 0x4884]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 0xa0]
mov eax, dword [eax + 0x34c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x140]
mov eax, dword [eax + 0x4880]
mov dword [esp + 0x44], eax
jmp 0x10018f70
mov edi, dword [esp + 0x150]
mov dword [edi], 0
add esp, 0x12c
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
add edi, 0xef8
mov dword [ebp + edi*4 + 8], 1
jmp 0x100177c8
mov esi, edx
add eax, 1
mov ecx, dword [esi]
add edx, 4
mov esi, dword [esi - 4]
mov ecx, dword [ecx + 0x70]
sub ecx, dword [esi + 0x70]
test ecx, ecx
jg 0x10019088
cmp eax, ebx
jl 0x1001909b
jmp 0x10018b3f
sub edi, 5
mov dword [eax + 0x1c], edi
add edx, edi
mov eax, 5
jmp 0x10018275
mov dword [esp + 8], 0x8a8
mov dword [esp + 4], str.encoder_encoder.c
mov dword [esp], str.h__i_ref_0___h__i_ref_1____X264_REF_MAX
call fcn.102dafab
mov eax, dword [ebp + 0x3b40]
mov edx, dword [ebp + 0x3b44]
jmp 0x10017820
mov ebx, dword [ebp + 0x210]
mov ecx, 0xffffffff
test ebx, ebx
jle 0x10019273
mov ecx, dword [ebp + 0x2c4]
mov dword [esp + 0x11c], 0
mov dword [esp + 0xec], 0
test ecx, ecx
jne 0x1001a4f6
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0x1bc]
test edx, edx
je 0x1001a2f3
mov ecx, dword [eax + 0x1b0]
mov edi, eax
mov eax, 1
shl eax, cl
cmp dword [edi + 0x1b4], eax
je 0x1001a2c6
cmp dword [ebp + 0x3b40], 1
jle 0x1001924f
cmp dword [ebp + 0x210], 2
jne 0x1001924f
mov dword [esp], ebp
call fcn.1002dc30
test eax, eax
mov ebx, eax
je 0x1001924f
mov eax, dword [ebp + 0x3b48]
mov esi, 0x1032fb60
mov dword [esp + 8], 0x2f10
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.102da6f0
mov edx, dword [ebp + 0x3b38]
mov eax, dword [ebp + 0x3b48]
mov dword [ebx + 0x2eb8], 1
mov dword [ebx + 0xad0], 1
lea edi, [edx + 0x220]
test edi, 1
mov dword [ebx + 0xad4], eax
mov eax, 0x90
jne 0x1001a2a4
test edi, 2
jne 0x1001a28f
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x1001920a
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x10019215
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [ebp + 0x3b40]
mov dword [ebp + 0x3be8], 1
cmp eax, 0xf
jg 0x10019233
add eax, 1
mov dword [ebp + 0x3b40], eax
lea eax, [ebp + 0x3b4c]
mov dword [ebp + 0x3b84], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.1002d8e0
mov eax, dword [ebp + 0x3b38]
cmp dword [eax + 0x1b8], 0xffffff81
jge 0x1001a515
mov eax, dword [ebp + 0x3b40]
mov ecx, 0xffffffff
mov edx, dword [ebp + 0x3b44]
mov dword [ebp + 0x76e4], ecx
jmp 0x10017814
mov esi, dword [ebp + 0x7c]
xor eax, eax
mov edi, dword [ebp + 0x3a80]
mov dword [ebp + 0xcb8], 1
cmp esi, 1
setne al
mov dword [esp + 0x50], eax
mov eax, dword [edi]
add dword [esp + 0x50], 1
test eax, eax
je 0x1001a46c
cmp dword [eax + 0x10], 5
jne 0x1001a46c
mov ecx, dword [ebp + 0x21bc]
add edi, 4
mov dword [esp + 0x34], ecx
xor ecx, ecx
jmp 0x100192d0
add edi, 4
cmp dword [eax + 0x10], 5
jne 0x100192e8
mov edx, dword [esp + 0x34]
add edx, dword [eax + 0x5c]
cmp dword [eax + 0x60], edx
setne al
movzx eax, al
or ecx, eax
mov eax, dword [edi]
test eax, eax
jne 0x100192c7
cmp esi, 1
je 0x100192fe
test ecx, ecx
jne 0x100192fe
cmp dword [ebp + 0x3ae0], 0xffffffff
je 0x1001a04a
mov eax, dword [ebp + 0x3a90]
xor edi, edi
test eax, eax
jne 0x10019385
jmp 0x1001a03f
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x3ae0]
jge 0x10019377
cmp dword [ebp + 0xcb8], 1
je 0x10019377
mov esi, dword [ebp + 0x2014]
mov ecx, dword [ebp + 0x61c]
sub ecx, dword [eax + 0x70]
lea eax, [ebp + edi*4 + 0x3a90]
sub edi, 1
lea ebx, [ebp + esi*8]
add esi, 1
mov dword [ebx + 0x2018], ecx
mov dword [ebp + 0x2014], esi
mov dword [ebx + 0x201c], edx
mov dword [esp], eax
call fcn.1002d920
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1002d990
mov esi, dword [ebp + 0x7c]
mov dword [ebp + 0x3be8], 1
add edi, 1
mov eax, dword [ebp + edi*4 + 0x3a90]
test eax, eax
je 0x10019395
cmp esi, 1
jne 0x10019310
cmp dword [eax + 0x10], 4
jne 0x10019310
mov edx, dword [eax + 4]
jmp 0x10019324
mov eax, dword [ebp + 0x3b38]
mov ecx, dword [ebp + 0x3b3c]
mov dword [esp + 0x30], eax
mov ebx, ecx
test esi, esi
mov dword [esp + 0x54], 1
je 0x100171b9
xor eax, eax
add edi, 2
sub edi, dword [ebp + 0x3ae8]
cmovns eax, edi
mov dword [ebp + 0x2010], eax
jmp 0x100171b9
mov eax, ecx
and eax, 7
cmp ecx, eax
jg 0x1001a4eb
shl edx, cl
sub ecx, eax
lea eax, [ecx + 0x20]
bswap edx
mov dword [edi], edx
mov dword [ebp + 0x5fc], 0
add dword [ebp + 0x5f4], 4
mov dword [ebp + 0x600], eax
jmp 0x100179d2
mov ecx, dword [ebp + 0x5fc]
lea eax, [esi - 3]
lea edx, [ecx*8]
or edx, ebx
lea edx, [edx + edx + 1]
jmp 0x10017997
mov esi, dword [ebp + 0x84]
test esi, esi
je 0x10017814
mov ecx, dword [ebp + 0x3b48]
mov ecx, dword [ecx + 0x10]
sub ecx, 4
cmp ecx, 2
sbb ecx, ecx
not ecx
add ecx, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp + 0x3b40], eax
jmp 0x10017814
mov dword [esp + 0x74], 0
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x5c], 0
jmp 0x10017448
mov esi, dword [ebp + 0x3a80]
mov dword [ebp + 0xcb8], 0
mov eax, dword [esi]
test eax, eax
je 0x1001a4c9
cmp dword [eax + 0x10], 5
jne 0x1001a4c9
mov edi, dword [ebp + 0x21bc]
add esi, 4
xor edx, edx
jmp 0x100194aa
add esi, 4
cmp dword [eax + 0x10], 5
jne 0x100194c0
mov ecx, dword [eax + 0x5c]
add ecx, edi
cmp dword [eax + 0x60], ecx
setne al
movzx eax, al
or edx, eax
mov eax, dword [esi]
test eax, eax
jne 0x100194a1
cmp dword [ebp + 0x7c], 1
je 0x100194d7
test edx, edx
jne 0x100194d7
cmp dword [ebp + 0x3ae0], 0xffffffff
je 0x1001a4d8
mov eax, dword [ebp + 0x3a90]
xor edi, edi
mov ecx, dword [ebp + 0x7c]
test eax, eax
jne 0x10019569
jmp 0x1001a48a
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x3ae0]
jge 0x10019557
cmp dword [ebp + 0xcb8], 1
je 0x10019557
mov esi, dword [ebp + 0x2014]
mov ecx, dword [ebp + 0x61c]
sub ecx, dword [eax + 0x70]
lea eax, [ebp + edi*4 + 0x3a90]
sub edi, 1
lea ebx, [ebp + esi*8]
add esi, 1
mov dword [ebx + 0x2018], ecx
mov dword [ebp + 0x2014], esi
mov dword [ebx + 0x201c], edx
mov dword [esp], eax
call fcn.1002d920
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1002d990
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x3be8], 1
add edi, 1
mov eax, dword [ebp + edi*4 + 0x3a90]
test eax, eax
je 0x1001a480
cmp ecx, 1
jne 0x100194f0
cmp dword [eax + 0x10], 4
jne 0x100194f0
mov edx, dword [eax + 4]
jmp 0x10019504
mov esi, dword [ebp + 0x3a80]
mov dword [ebp + 0xcb8], 2
mov eax, dword [esi]
test eax, eax
je 0x1001a45d
cmp dword [eax + 0x10], 5
jne 0x1001a45d
mov edi, dword [ebp + 0x21bc]
add esi, 4
xor edx, edx
jmp 0x100195b9
add esi, 4
cmp dword [eax + 0x10], 5
jne 0x100195cf
mov ecx, dword [eax + 0x5c]
add ecx, edi
cmp dword [eax + 0x60], ecx
setne al
movzx eax, al
or edx, eax
mov eax, dword [esi]
test eax, eax
jne 0x100195b0
cmp dword [ebp + 0x7c], 1
je 0x100195e6
test edx, edx
jne 0x100195e6
cmp dword [ebp + 0x3ae0], 0xffffffff
je 0x1001a4e0
mov eax, dword [ebp + 0x3a90]
xor edi, edi
mov ecx, dword [ebp + 0x7c]
test eax, eax
jne 0x10019675
jmp 0x1001968f
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x3ae0]
jge 0x10019667
cmp dword [ebp + 0xcb8], 1
je 0x10019667
mov esi, dword [ebp + 0x2014]
mov ecx, dword [ebp + 0x61c]
sub ecx, dword [eax + 0x70]
lea eax, [ebp + edi*4 + 0x3a90]
sub edi, 1
lea ebx, [ebp + esi*8]
add esi, 1
mov dword [ebx + 0x2018], ecx
mov dword [ebp + 0x2014], esi
mov dword [ebx + 0x201c], edx
mov dword [esp], eax
call fcn.1002d920
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1002d990
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x3be8], 1
add edi, 1
mov eax, dword [ebp + edi*4 + 0x3a90]
test eax, eax
je 0x10019685
cmp ecx, 1
jne 0x10019600
cmp dword [eax + 0x10], 4
jne 0x10019600
mov edx, dword [eax + 4]
jmp 0x10019614
mov eax, dword [ebp + 0x3b38]
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x100196a7
xor eax, eax
add edi, 2
sub edi, dword [ebp + 0x3ae8]
cmovns eax, edi
mov dword [ebp + 0x2010], eax
mov ecx, dword [ebp + 0x3b3c]
mov ebx, ecx
mov esi, dword [ebp + 0x80]
test esi, esi
je 0x100196e7
mov edi, dword [esp + 0x30]
mov eax, 0xffffffff
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x100196cc
mov eax, dword [edi + 4]
mov dword [ebp + 0x3ae0], eax
mov dword [esp + 0x50], 2
mov dword [esp + 0x54], 1
jmp 0x100171b9
mov dword [esp + 0x50], 2
mov dword [esp + 0x54], 1
jmp 0x100171b9
mov eax, dword [ebp + 0x3b3c]
cvtsi2ss xmm0, dword [ebp + 0x4880]
mov dword [eax + 0x2ee8], 0
mov dword [ebp + 0x678], 0
movss dword [eax + 0x2edc], xmm0
jmp 0x10017b76
mov dword [esp], ebp
call fcn.100aafe0
mov eax, dword [ebp + 0x3a80]
mov esi, dword [eax]
test esi, esi
jne 0x10016e5d
mov dword [esp], ebp
call fcn.100aaf60
test eax, eax
jne 0x10018ea1
mov eax, dword [ebp + 0x3a80]
jmp 0x10016e5d
mov eax, dword [ebp + 0x2168]
test eax, eax
je 0x10017b98
mov dword [esp], ebp
call fcn.1004d1f0
mov ecx, dword [ebp + 0x5f4]
mov edx, 0x20
mov eax, dword [ebp + 0x5dc]
sub ecx, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
shl eax, 5
lea edx, [edx + ecx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.100244a0
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov edx, dword [ebp + 0x5dc]
mov edi, dword [ebp + 0x300]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
test edi, edi
mov ecx, dword [eax + 0x14]
mov eax, 5
je 0x10019830
mov esi, dword [ebp + 0x88]
test esi, esi
jne 0x10019830
xor eax, eax
cmp edx, 1
sete al
add eax, 4
add eax, ecx
add ebx, eax
jmp 0x10017b98
mov edx, dword [ebp + 0x5f4]
mov ecx, 0x20
mov eax, dword [ebp + 0x5dc]
lea edi, [ebp + 0x5f0]
sub ecx, dword [ebp + 0x600]
sub edx, dword [ebp + 0x5f0]
mov dword [esp + 0x3c], edi
shl eax, 5
lea edx, [ecx + edx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 3
mov dword [eax + 4], 7
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x20c0]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x38], eax
call fcn.1001dd10
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0x5dc]
mov edi, dword [ebp + 0x5e4]
test eax, eax
lea esi, [ecx + 0x7ffffff]
jne 0x10019afd
shl esi, 5
add esi, edi
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x30], eax
mov eax, 0x20
sub eax, dword [ebp + 0x600]
mov edx, eax
mov eax, dword [ebp + 0x5f4]
sub eax, dword [ebp + 0x5f0]
lea eax, [edx + eax*8]
lea edx, [eax + 7]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
shl ecx, 5
add edx, dword [esi + 0x14]
add ecx, edi
test eax, eax
cmovs eax, dword [esp + 0x34]
mov dword [ecx], 3
lea ebx, [ebx + edx + 5]
mov dword [ecx + 4], 8
sar eax, 3
add eax, dword [ebp + 0x5ec]
mov dword [ecx + 8], 1
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], eax
lea eax, [ebp + 0x21cc]
mov dword [ecx + 0x1c], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.10020d90
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov eax, dword [ebp + 0x88]
test eax, eax
mov eax, dword [ebp + 0x5dc]
jne 0x10019add
add eax, 0x7ffffff
shl eax, 5
add eax, dword [ebp + 0x5e4]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x1c]
lea eax, [ecx + edx + 5]
add ebx, eax
jmp 0x10017b8b
mov eax, dword [ebp + 0x3b3c]
mov edi, dword [ebp + 0x3b48]
movss xmm0, dword [0x1032ef18]
mov ecx, dword [eax + 4]
sub ecx, dword [edi + 4]
mov esi, ecx
shr esi, 0x1f
add ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x4880]
sar dword [esp + 0x38], 1
mov esi, dword [esp + 0x38]
add esi, dword [edi + 0x2ee8]
cvtsi2ss xmm3, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 0x60]
movaps xmm2, xmm3
subss xmm2, xmm0
cvtsi2ss xmm1, ecx
cmp ecx, esi
divss xmm2, xmm1
movss xmm1, dword [edi + 0x2edc]
mov dword [eax + 0x2ee8], esi
movss dword [eax + 0x2edc], xmm1
maxss xmm2, xmm0
jg 0x10019b3f
movss xmm4, dword [0x1032ef1c]
movss dword [esp + 0x30], xmm4
jmp 0x10019a49
fstp st(0)
mov dword [eax + 0x2ee8], 0
xorps xmm1, xmm1
xor edi, edi
mov dword [ebp + 0x678], 0
mov dword [edx + 0x7c], 1
fnstcw word [esp + 0x7e]
movzx esi, word [esp + 0x7e]
mov ecx, esi
mov ch, 0xc
mov word [esp + 0x7c], cx
cvtsi2ss xmm0, dword [esp + 0x38]
mov dword [eax + 0x2ee0], edi
mov esi, dword [esp + 0x34]
mulss xmm0, xmm2
sub esi, 1
addss xmm0, xmm1
movss dword [esp + 0x38], xmm0
movss dword [eax + 0x2edc], xmm0
fld dword [esp + 0x38]
fadd dword [esp + 0x30]
fldcw word [esp + 0x7c]
fistp dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov ecx, dword [esp + 0x78]
cmp ecx, esi
mov dword [eax + 0x2ee4], ecx
jl 0x10017b76
movss dword [eax + 0x2edc], xmm3
mov dword [eax + 0x2ee4], esi
jmp 0x10017b76
add eax, 0x7ffffff
mov edx, 0xfb
shl eax, 5
add eax, dword [ebp + 0x5e4]
mov ecx, dword [eax + 0x14]
sub edx, ecx
mov dword [eax + 0x1c], edx
jmp 0x100199b7
mov eax, dword [ebp + 0x5f4]
mov edx, 0x20
sub eax, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
shl esi, 5
add esi, edi
lea eax, [edx + eax*8]
test eax, eax
lea edx, [eax + 7]
mov dword [esp + 0x34], edx
cmovns edx, eax
sar edx, 3
neg edx
add edx, 0xf6
mov dword [esp + 0x30], edx
mov dword [esi + 0x1c], edx
jmp 0x10019921
mov ecx, dword [ebp + 0x678]
test ecx, ecx
je 0x1001a014
movss xmm6, dword [0x1032ef1c]
movss dword [esp + 0x3c], xmm1
movss dword [esp + 0x30], xmm6
fld dword [esp + 0x3c]
fadd dword [esp + 0x30]
fild dword [esp + 0x34]
fxch st(1)
fcomi st(1)
fstp st(1)
jae 0x10019a47
fnstcw word [esp + 0x7e]
movzx esi, word [esp + 0x7e]
mov ecx, esi
mov ch, 0xc
mov word [esp + 0x7c], cx
fldcw word [esp + 0x7c]
fistp dword [esp + 0x78]
fldcw word [esp + 0x7e]
mov edi, dword [esp + 0x78]
jmp 0x10019a7b
mov dword [esp], ebp
call fcn.10009c10
test eax, eax
je 0x10018ea1
jmp 0x10017a75
mov ecx, 1
mov ebx, 0xffffffff
jmp 0x100185ae
mov dword [ebp + 0xce0], 0
xor edx, edx
jmp 0x100185be
cmp eax, 1
mov ecx, edx
mov dword [ebp + 0x3ad8], edx
je 0x100170f8
mov esi, dword [ebp + 0x3adc]
xor ecx, ecx
mov dword [ebp + 0x2010], 0
mov dword [ebp + 0x2014], 0
mov dword [ebp + 0x3bec], 0
test esi, esi
cmovns ecx, esi
mov esi, edx
sub esi, ecx
mov ecx, esi
add ecx, ecx
mov dword [ebp + 0x3be8], 0
mov dword [edi + 4], ecx
mov dword [ebx + 4], ecx
jmp 0x1001728c
mov ebx, dword [ebp + 0xa0]
test ebx, ebx
je 0x10018bb5
mov eax, dword [ebp + 0x320]
jmp 0x1001721a
mov eax, dword [ebp + 0x84]
test eax, eax
je 0x10018566
mov edi, dword [ebp + 0x2014]
test edi, edi
je 0x10018566
mov dword [ebp + 0x2230], 1
lea edi, [ebp + 0x2240]
mov ecx, 0x504
rep movsd dword es:[edi], dword [esi]
jmp 0x10018566
mov eax, dword [ebp + 0x688]
mov edx, esi
mov dword [esp + 4], eax
lea eax, [ebp + 0x21cc]
mov dword [esp], eax
mov eax, ebp
call fcn.100094e0
xor dword [ebp + 0x688], 1
jmp 0x10018556
mov dword [esp], ebp
call fcn.1005ef60
mov ebx, dword [ebp + 0xcb8]
jmp 0x100185db
mov eax, dword [ebp + 0xe60]
jmp 0x10018e41
mov ecx, dword [ebp + 0x5f4]
mov edx, 0x20
mov eax, dword [ebp + 0x5dc]
sub ecx, dword [ebp + 0x5f0]
sub edx, dword [ebp + 0x600]
mov dword [ebp + 0x2230], 0
shl eax, 5
lea edx, [edx + ecx*8]
add eax, dword [ebp + 0x5e4]
test edx, edx
lea ecx, [edx + 7]
cmovs edx, ecx
sar edx, 3
add edx, dword [ebp + 0x5ec]
mov dword [eax], 0
mov dword [eax + 4], 6
mov dword [eax + 0x18], edx
mov dword [eax + 8], 1
mov dword [eax + 0x14], 0
mov dword [eax + 0x1c], 0
lea eax, [ebp + 0x5f0]
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.100253b0
mov eax, ebp
call fcn.1000a630
test eax, eax
jne 0x10017a75
mov edx, dword [ebp + 0x5dc]
mov esi, dword [ebp + 0x300]
lea eax, [edx + 0x7ffffff]
shl eax, 5
add eax, dword [ebp + 0x5e4]
test esi, esi
mov esi, dword [ebp + 0x88]
mov ecx, dword [eax + 0x14]
je 0x1001a035
test esi, esi
jne 0x1001a035
cmp edx, 1
mov eax, 4
je 0x1001a035
add eax, ecx
mov ecx, dword [ebp + 0x3b38]
add ebx, eax
jmp 0x10018014
mov edx, 1
xor ebx, ebx
jmp 0x100178f2
mov ebp, dword [esp + 0x140]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], ebp
mov dword [esp], fcn.10086620
add eax, 1
shl eax, 4
mov dword [esp + 8], eax
call fcn.10029d00
mov dword [esp], ebp
call fcn.1004d4f0
mov ebx, dword [ebp + 4]
test ebx, ebx
jle 0x10019e70
xor ebx, ebx
mov eax, dword [ebp + ebx*4 + 0x35c]
mov dword [eax + 0x5a8], ebx
add ebx, 1
mov dword [eax + 0x5a0], 1
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.1002d750
mov eax, dword [ebp + 4]
cmp ebx, eax
jl 0x10019de7
test eax, eax
jle 0x10019e70
xor ebx, ebx
nop
mov eax, dword [ebp + ebx*4 + 0x35c]
add ebx, 1
mov dword [esp + 4], fcn.10009c10
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x5b8]
mov dword [esp], eax
call fcn.10056260
mov eax, dword [ebp + 4]
cmp ebx, eax
jl 0x10019e20
test eax, eax
jle 0x10019e70
xor ebx, ebx
mov dword [esp + 4], 1
mov eax, dword [ebp + ebx*4 + 0x35c]
add ebx, 1
mov dword [esp], eax
call fcn.1002d7a0
cmp ebx, dword [ebp + 4]
jl 0x10019e51
mov dword [esp], ebp
call fcn.1004d990
cmp dword [ebp + 4], 1
jle 0x10018ea1
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
lea ebx, [ebp + 0x7728]
mov edi, dword [ebp + eax*4 + 0x35c]
mov ecx, dword [edi + 0x5dc]
test ecx, ecx
jle 0x10019f7a
xor esi, esi
mov dword [esp + 0x34], ebx
jmp 0x10019ec0
add esi, 1
cmp esi, dword [edi + 0x5dc]
jge 0x10019f76
mov ecx, dword [ebp + 0x5dc]
mov edx, esi
shl edx, 5
add edx, dword [edi + 0x5e4]
mov eax, ecx
add ecx, 1
mov ebx, dword [edx]
shl eax, 5
add eax, dword [ebp + 0x5e4]
mov dword [eax], ebx
mov ebx, dword [edx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [edx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [edx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [edx + 0x10]
mov dword [eax + 0x10], ebx
mov ebx, dword [edx + 0x14]
mov dword [eax + 0x14], ebx
mov ebx, dword [edx + 0x18]
mov dword [eax + 0x18], ebx
mov edx, dword [edx + 0x1c]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp + 0x5e0]
mov dword [ebp + 0x5dc], ecx
cmp ecx, eax
jl 0x10019eb1
shl eax, 6
mov dword [esp], eax
call fcn.10008780
test eax, eax
mov ebx, eax
je 0x10019eb1
mov eax, dword [ebp + 0x5e0]
add esi, 1
mov ecx, dword [ebp + 0x5e4]
mov dword [esp], ebx
shl eax, 5
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.102da6f0
mov eax, dword [ebp + 0x5e4]
mov dword [esp], eax
call fcn.100087d0
shl dword [ebp + 0x5e0], 1
cmp esi, dword [edi + 0x5dc]
mov dword [ebp + 0x5e4], ebx
jl 0x10019ec0
mov ebx, dword [esp + 0x34]
lea ecx, [edi + 0x7728]
xor edx, edx
xor eax, eax
mov esi, dword [ecx + eax*4]
add edx, 1
add dword [ebx + eax*4], esi
cmp edx, 0xac
mov eax, edx
jne 0x10019f84
mov eax, dword [edi + 0x79d8]
mov edx, dword [edi + 0x79dc]
add dword [ebp + 0x79d8], eax
adc dword [ebp + 0x79dc], edx
mov eax, dword [edi + 0x79e0]
mov edx, dword [edi + 0x79e4]
add dword [ebp + 0x79e0], eax
adc dword [ebp + 0x79e4], edx
mov eax, dword [edi + 0x79e8]
mov edx, dword [edi + 0x79ec]
fld qword [ebp + 0x79f0]
add dword [ebp + 0x79e8], eax
adc dword [ebp + 0x79ec], edx
fadd qword [edi + 0x79f0]
mov eax, dword [edi + 0x79f8]
add dword [esp + 0x30], 1
add dword [ebp + 0x79f8], eax
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 4]
fstp qword [ebp + 0x79f0]
jl 0x10019e94
jmp 0x10018ea1
movss xmm5, dword [0x1032ef1c]
movss dword [esp + 0x3c], xmm1
movss dword [esp + 0x30], xmm5
fld dword [esp + 0x3c]
fadd dword [esp + 0x30]
jmp 0x10019b79
mov eax, 5
jmp 0x10019d92
mov ecx, dword [ebp + 0x3b3c]
jmp 0x100193a7
mov dword [esp + 0x54], 1
mov ecx, dword [ebp + 0x3b3c]
jmp 0x100171b9
mov eax, dword [ebp + 0xcb8]
cmp eax, 1
mov dword [esp + 0x38], eax
sete al
xor edi, edi
movzx eax, al
mov dword [esp + 0x3c], eax
lea eax, [ebp + 0x3b4c]
mov ecx, dword [ebp + edi*4 + 0x3b40]
cmp edi, 1
lea edx, [ecx - 1]
mov ecx, eax
je 0x1001a101
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x30], 0
test ebx, ebx
je 0x1001a0e0
cmp dword [esp + 0x30], edx
jge 0x1001a12e
mov esi, ecx
add ecx, 4
mov ebx, dword [esi]
mov esi, dword [esi - 4]
add dword [esp + 0x30], 1
mov ebx, dword [ebx + 4]
sub ebx, dword [esi + 4]
test ebx, ebx
jle 0x1001a09d
xor edi, edi
mov ebx, dword [ebp + 0x3b40]
mov dword [ebp + edi*4 + 0x3be8], 1
test ebx, ebx
je 0x100184cc
jmp 0x10018ceb
cmp dword [esp + 0x30], edx
jge 0x1001a12e
mov esi, ecx
add ecx, 4
mov ebx, dword [esi]
mov esi, dword [esi - 4]
add dword [esp + 0x30], 1
mov ebx, dword [ebx + 0x70]
sub ebx, dword [esi + 0x70]
test ebx, ebx
jle 0x1001a0e0
jmp 0x1001a0c0
mov esi, dword [esp + 0x38]
test esi, esi
je 0x1001a161
xor esi, esi
mov dword [esp + 0x30], eax
jmp 0x1001a126
mov ebx, ecx
add esi, 1
mov eax, dword [ebx]
add ecx, 4
mov ebx, dword [ebx - 4]
mov ebx, dword [ebx + 4]
cmp dword [eax + 4], ebx
js 0x1001a0c2
cmp esi, edx
jl 0x1001a111
mov eax, dword [esp + 0x30]
add edi, 1
add eax, 0x4c
cmp edi, dword [esp + 0x3c]
jle 0x1001a07c
jmp 0x100184be
mov eax, dword [ecx + 0x3be0]
mov edx, dword [ecx + ebp*4 + 0x3b4c]
mov eax, dword [eax + 4]
cmp dword [edx + 4], eax
lea eax, [ebp + 1]
setg dl
jmp 0x100174b2
mov dword [esp + 0x30], 0
jmp 0x1001a18d
mov esi, ecx
add ecx, 4
mov ebx, dword [esi]
mov esi, dword [esi - 4]
add dword [esp + 0x30], 1
mov ebx, dword [ebx + 0x70]
sub ebx, dword [esi + 0x70]
test ebx, ebx
jg 0x1001a0c2
cmp dword [esp + 0x30], edx
jl 0x1001a170
jmp 0x1001a12e
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x3b38]
mov edi, dword [eax + 0x9c]
imul edx, edi
cmp dword [ebp + 4], 1
mov ecx, edx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x44]
mov edx, dword [ebp + edx*4 + 0x4b50]
lea ecx, [edx + ecx + 0x20]
mov dword [esp + 0x44], ecx
mov dword [eax + ebx*4 + 0xa90], ecx
je 0x1001a1fb
mov edi, dword [esp + 0x48]
mov eax, dword [ebp + 0x3b40]
mov dword [esp + 0x44], edi
jmp 0x100188e8
mov ecx, dword [ebp + 0x3b3c]
mov eax, dword [esp + 0x30]
jmp 0x10017191
mov ecx, dword [ebp + ebx*4 + 0x3b48]
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x34]
add edx, dword [eax + 0xb4]
mov dword [esp + 0x1c], ebx
mov ebx, edx
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0xa8]
mov edx, ecx
mov dword [esp + 0x10], edi
add eax, 0x40
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
imul eax, dword [ecx + 0x9c]
mov ecx, 0xffffffe0
sub ecx, eax
mov eax, ecx
add eax, dword [edx + 0xe4]
mov dword [esp + 8], edi
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, 0xffffffe0
sub eax, dword [esp + 0x58]
add eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.1002dca0
mov eax, dword [ebp + 0x3b38]
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x2eb4], ebx
mov eax, dword [ebp + 0x3b40]
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x60]
jmp 0x100188e8
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0x100191f2
movzx eax, byte [0x1032fb60]
lea edi, [edx + 0x221]
mov esi, 0x1032fb61
mov byte [edx + 0x220], al
mov eax, 0x8f
jmp 0x100191e6
mov eax, edi
add eax, 0x190
mov dword [edi + 0x1b4], 1
mov dword [edi + 0x1b0], 0
mov dword [esp + 4], eax
mov dword [esp], ebp
call dword [ebp + 0x92b4]
jmp 0x1001915e
mov dword [eax + 0x1b0], 0
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb8], 0xffffffff
lea esi, [esp + 0x90]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [ebp + 0x92b4]
mov eax, dword [ebp + 0x3b40]
cmp eax, 1
jle 0x1001a453
cmp dword [ebp + 0x210], 2
jne 0x1001a453
mov dword [esp], ebp
call fcn.1002dc30
test eax, eax
mov ebx, eax
je 0x10019262
mov eax, dword [ebp + 0x3b48]
mov dword [esp + 8], 0x2f10
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.102da6f0
mov eax, dword [ebp + 0x3b48]
mov dword [ebx + 0x2eb8], 1
mov dword [ebx + 0xad0], 1
mov dword [ebx + 0xad4], eax
mov edx, dword [ebp + 0x3b38]
mov eax, 0x90
lea edi, [edx + 0x220]
test edi, 1
je 0x1001a3ce
movzx eax, byte [esi]
lea edi, [edx + 0x221]
lea esi, [esp + 0x91]
mov byte [edx + 0x220], al
mov eax, 0x8f
test edi, 2
je 0x1001a3e6
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x1001a3fe
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x1001a409
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [ebp + 0x3b40]
mov dword [ebp + 0x3be8], 1
cmp eax, 0xf
jg 0x1001a427
add eax, 1
mov dword [ebp + 0x3b40], eax
lea eax, [ebp + 0x3b4c]
mov dword [ebp + 0x3b84], 0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.1002d8e0
mov eax, dword [ebp + 0x3b40]
mov ecx, 1
jmp 0x1001926d
mov ecx, 0xffffffff
jmp 0x1001926d
cmp dword [ebp + 0x7c], 1
jne 0x100195d9
jmp 0x100195e6
cmp esi, 1
nop
jne 0x100192f1
jmp 0x100192fe
mov eax, dword [ebp + 0x3b38]
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x1001a4a2
xor eax, eax
add edi, 2
sub edi, dword [ebp + 0x3ae8]
cmovns eax, edi
mov dword [ebp + 0x2010], eax
mov ecx, dword [ebp + 0x3b3c]
mov ebx, ecx
mov dword [ebp + 0x3ae0], 0xffffffff
mov dword [esp + 0x50], 2
mov dword [esp + 0x54], 1
jmp 0x100171b9
cmp dword [ebp + 0x7c], 1
jne 0x100194ca
jmp 0x100194d7
mov ecx, dword [ebp + 0x3b3c]
jmp 0x1001a4aa
mov ecx, dword [ebp + 0x3b3c]
jmp 0x100196af
sub ecx, eax
mov ebx, ecx
mov ecx, eax
jmp 0x100179c4
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.1004c0d0
mov eax, dword [ebp + 0x3b38]
mov dword [esp + 0x58], eax
jmp 0x10019131
mov edx, dword [eax + 0x190]
mov dword [esp + 0x90], edx
mov edx, dword [eax + 0x194]
mov dword [esp + 0x94], edx
mov edx, dword [eax + 0x198]
mov dword [esp + 0x98], edx
mov edx, dword [eax + 0x19c]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 0x1a0]
mov dword [esp + 0xa0], edx
mov edx, dword [eax + 0x1a4]
mov dword [esp + 0xa4], edx
mov edx, dword [eax + 0x1a8]
mov dword [esp + 0xa8], edx
mov edx, dword [eax + 0x1ac]
mov dword [esp + 0xac], edx
mov edx, dword [eax + 0x1b0]
mov dword [esp + 0xb0], edx
mov edx, dword [eax + 0x1b4]
mov dword [esp + 0xb4], edx
mov edx, dword [eax + 0x1b8]
mov dword [esp + 0xb8], edx
mov eax, dword [eax + 0x1bc]
sub dword [esp + 0xb8], 1
mov dword [esp + 0xbc], eax
jmp 0x1001a31e