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

Disassembly:
endbr32
push esi
push edi
push ebx
push ebp
sub esp, 0x824
xor esi, esi
mov eax, dword [esp + 0x840]
mov dword [esp + 0x244], eax
mov ecx, dword [esp + 0x83c]
mov edx, dword [0x10234e38]
xor edx, esp
mov dword [esp + 0x820], edx
mov ebp, dword [esp + 0x848]
mov dword [esp + 0x660], esi
mov dword [esp + 0x66c], esi
mov dword [esp + 0x670], esi
mov dword [esp + 0x674], esi
mov dword [esp + 0x678], esi
mov dword [esp + 0x67c], esi
mov dword [esp + 0x680], esi
mov dword [esp + 0x684], esi
mov dword [esp + 0x688], esi
mov dword [esp + 0x68c], esi
mov dword [esp + 0x690], esi
mov dword [esp + 0x694], esi
mov dword [esp + 0x698], esi
mov dword [esp + 0x69c], esi
mov dword [esp + 0x248], ecx
test ecx, ecx
jle 0x1005fcba
mov eax, dword [esp + 0x844]
mov ecx, eax
shr ecx, 0x16
and ecx, 7
test eax, 0x80000000
jne 0x1005ba59
test cl, 1
jne 0x1005ba59
xor ecx, ecx
mov edi, dword [esp + 0x844]
mov ebx, edi
and ebx, 0x80002000
xor edx, edx
mov eax, edi
cmp ebx, 0x80002000
mov ebx, edx
sete bl
and eax, 0x80001000
cmp eax, 0x80001000
mov eax, edx
sete al
and edi, 0x80000800
cmp edi, 0x80000800
sete dl
shl ebx, 0xa
shl eax, 9
shl edx, 8
or ebx, eax
or ebx, edx
mov eax, ecx
bts ebx, ecx
and eax, 2
test cl, 4
je 0x1005bac6
test eax, eax
mov eax, 0xaaaa
jne 0x1005babd
mov eax, 0xfa
mov dword [esp + 0x1c4], eax
jmp 0x1005baed
test eax, eax
je 0x1005bad7
mov dword [esp + 0x1c4], 0xfa00
jmp 0x1005baed
mov eax, 0xa8a8
test cl, 1
je 0x1005bae6
mov eax, 0
mov dword [esp + 0x1c4], eax
mov edi, dword [esp + 0x838]
mov ecx, edi
and ecx, 0x80000000
mov edx, edi
xor edx, ecx
mov eax, edx
mov dword [esp], edx
fld dword [esp]
shr eax, 7
add eax, 0xff810000
fstp dword [esp + 0x238]
mov dword [esp + 0x30], edx
mov dword [esp + 0x240], edx
mov dword [esp + 0x23c], edx
and edi, 0x7f800000
jne 0x1005bcdf
test edx, edx
jne 0x1005bb6b
xor eax, eax
mov dword [esp + 0x668], eax
mov dword [esp + 0x664], eax
test ecx, ecx
je 0x1005bb5c
mov eax, dword [esp + 0x858]
mov dword [eax], 0xffffffff
jmp 0x1005bbac
mov eax, dword [esp + 0x858]
mov dword [eax], 1
jmp 0x1005bbac
test ecx, ecx
je 0x1005bb7e
mov eax, dword [esp + 0x858]
mov dword [eax], 0xfffffffe
jmp 0x1005bb8b
mov eax, dword [esp + 0x858]
mov dword [eax], 2
test dword [esp + 0x844], 0x10000000
je 0x1005bc9e
xor eax, eax
mov dword [esp + 0x668], eax
mov dword [esp + 0x664], eax
test dword [esp + 0x844], 0x80
je 0x1005bbc6
mov dword [esp + 0x244], 1
jmp 0x1005bc39
test byte [esp + 0x844], 2
je 0x1005bbf6
mov eax, dword [esp + 0x244]
inc eax
mov dword [esp + 0x244], eax
cmp eax, dword [esp + 0x83c]
jle 0x1005bc0f
mov eax, dword [esp + 0x83c]
mov dword [esp + 0x248], eax
mov edx, dword [esp + 0x248]
mov edi, ebp
lea eax, [edx - 1]
mov dword [esp + 0x244], eax
test edx, edx
jne 0x1005bc40
jmp 0x1005bc6a
cmp dword [esp + 0x244], 0
jg 0x1005bc39
mov edx, dword [esp + 0x854]
mov esi, ebp
mov byte [ebp], 0x30
lea edi, [ebp + 1]
mov dword [edx], 1
mov edx, 6
jmp 0x1005be34
dec dword [esp + 0x244]
mov edx, dword [esp + 0x244]
lea eax, [edx + 1]
cmp edx, 0x60
jle 0x1005f577
push eax
push 0x30
push ebp
call fcn.10061620
add esp, 0xc
mov eax, dword [esp + 0x244]
lea edi, [ebp + eax + 1]
mov eax, dword [esp + 0x854]
mov edx, 0xb
test dword [esp + 0x844], 0x40000000
mov esi, dword [esp + 0x848]
mov dword [eax], 1
jne 0x1005be34
mov edx, 0
jmp 0x1005be34
fld dword [esp + 0x238]
mov eax, edx
and eax, 0x7f800000
fstp st(0)
shr eax, 0x17
je 0x1005bcb8
shl edx, 8
jmp 0x1005bcca
shl edx, 9
xor eax, eax
test edx, edx
jle 0x1005bcc8
add edx, edx
inc eax
test edx, edx
jg 0x1005bcc1
neg eax
shr edx, 0xf
shl eax, 0x10
movzx esi, dx
add eax, 0xff810000
or eax, esi
jmp 0x1005becf
cmp edi, 0x7f800000
jne 0x1005beaf
xor eax, eax
mov dword [esp + 0x668], eax
mov dword [esp + 0x664], eax
cmp edx, 0x7f800000
jne 0x1005bd94
test ecx, ecx
je 0x1005bd1a
mov eax, dword [esp + 0x858]
mov dword [eax], 0xfffffffc
jmp 0x1005bd27
mov eax, dword [esp + 0x858]
mov dword [eax], 4
test ebx, 0x400
je 0x1005bd45
test ebx, 0x200
je 0x1005bd3e
mov eax, str.INFINITY
jmp 0x1005bd4a
mov eax, str.infinity
jmp 0x1005bd4a
mov eax, str.Infinity
mov edi, ebp
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x1005bd61
mov byte [edi], al
inc edi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x1005bd56
mov ebx, dword [esp + 0x854]
mov edx, edi
mov ecx, dword [esp + 0x844]
sub edx, ebp
and ecx, 0x40000000
shr ecx, 0x1d
mov dword [ebx], edx
mov edx, 4
shl edx, cl
mov esi, dword [esp + 0x848]
add edx, 0xfffffffc
jmp 0x1005be34
test ebx, 0x400
je 0x1005bde0
test edx, 0x400000
jne 0x1005bdb3
shr ecx, 0x1e
mov eax, 0x10
shr eax, cl
add eax, 0xfffffff6
jmp 0x1005bdc1
mov eax, 0xfffffffb
test ecx, ecx
jne 0x1005bdc1
mov eax, 5
mov edx, dword [esp + 0x858]
mov dword [edx], eax
test ebx, 0x200
je 0x1005bdd9
mov eax, 0x1020d674
jmp 0x1005bdf2
mov eax, 0x10215a60
jmp 0x1005bdf2
mov eax, dword [esp + 0x858]
mov dword [eax], 0
mov eax, 0x10215a64
mov edi, ebp
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x1005be09
mov byte [edi], al
inc edi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x1005bdfe
mov ebx, dword [esp + 0x854]
mov ecx, edi
mov edx, 0xa
test dword [esp + 0x844], 0x40000000
mov esi, dword [esp + 0x848]
jne 0x1005be30
mov edx, 0
sub ecx, ebp
mov dword [ebx], ecx
mov ebx, dword [esp + 0x84c]
mov byte [edi], 0
test ebx, ebx
je 0x1005be48
mov ecx, esi
sub ecx, ebp
mov dword [ebx], ecx
mov ecx, dword [esp + 0x850]
test ecx, ecx
je 0x1005be59
neg ebp
add ebp, edi
mov dword [ecx], ebp
mov ecx, esi
test esi, esi
je 0x1005be70
cmp ecx, edi
jae 0x1005be70
movsx ebx, byte [ecx]
inc ecx
cmp ebx, 0x30
jne 0x1005be75
test ecx, ecx
jne 0x1005be5f
mov edx, 0xb
mov ecx, dword [esp + 0x85c]
test ecx, ecx
je 0x1005be82
mov dword [ecx], edx
mov ecx, dword [esp + 0x820]
mov dword [esp + 0x820], 0
xor ecx, esp
cmp ecx, dword [0x10234e38]
jne 0x1005f5b1
mov eax, esi
add esp, 0x824
pop ebp
pop ebx
pop edi
pop esi
ret
test ecx, ecx
je 0x1005bec2
mov edx, dword [esp + 0x858]
mov dword [edx], 0xfffffffd
jmp 0x1005becf
mov edx, dword [esp + 0x858]
mov dword [edx], 3
test ebx, 0x100
je 0x1005c0df
fld dword [esp + 0x238]
and ebx, 0x200
mov eax, ebx
xor eax, 0x200
shr eax, 4
mov ecx, dword [esp + 0x30]
and ecx, 0x7f800000
fstp st(0)
lea edx, [eax + 0x46]
add eax, 8
mov dword [esp + 0x18], edx
shr ecx, 0x17
mov dword [esp + 0x14], ecx
je 0x1005bf24
mov edx, dword [esp + 0x30]
or edx, 0xff800000
shl edx, 8
mov dword [esp + 0x30], edx
jmp 0x1005bf52
mov edx, dword [esp + 0x30]
shl edx, 9
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], 0
test edx, edx
jle 0x1005bf4e
mov ecx, dword [esp + 0x14]
add edx, edx
inc ecx
test edx, edx
jg 0x1005bf3f
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], ecx
neg dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x844]
lea ecx, [ecx - 0x7e]
and edx, 2
mov dword [esp + 0x16c], edx
jne 0x1005bf84
mov edx, dword [esp + 0x83c]
mov dword [esp + 0x248], edx
mov dword [esp + 4], 3
jmp 0x1005bfe8
cmp dword [esp + 0x244], 0
jl 0x1005f8c0
mov edx, ecx
and edx, 3
mov esi, edx
neg esi
add esi, 4
test edx, edx
jne 0x1005bfa7
mov esi, 0
mov dword [esp + 4], esi
test ecx, ecx
jle 0x1005f819
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x83c]
lea edx, [ecx - 0x7b]
sar edx, 1
shr edx, 0x1e
lea edi, [edx + ecx - 0x7b]
sar edi, 2
add edi, dword [esp + 0x244]
cmp edi, esi
jl 0x1005bfda
mov edi, esi
mov dword [esp + 0x248], edi
cmp dword [esp + 4], 0
je 0x1005c020
mov edi, dword [esp + 4]
mov ecx, edi
mov edx, dword [esp + 0x30]
neg ecx
mov esi, edx
shl esi, cl
xor ecx, ecx
cmp ecx, esi
mov ecx, edi
mov dword [esp + 0x668], esi
mov esi, 1
adc esi, 0
shr edx, cl
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x664], edx
jmp 0x1005c03e
mov edx, dword [esp + 0x30]
mov dword [esp + 0x668], 0
mov dword [esp + 0x664], edx
mov dword [esp + 0x1c], 1
mov byte [ebp], 0x30
lea edi, [ebp + 1]
mov dword [esp + 0x10], 1
mov esi, edi
cmp dword [esp + 0x248], 0
jle 0x1005f80c
mov edx, dword [esp + 0x248]
mov ecx, 8
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x2cc], ebp
mov dword [esp], eax
lea edx, [edx - 1]
mov dword [esp + 0x184], ebx
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov eax, esi
dec ecx
shr eax, 0x1c
mov ebx, eax
shl esi, 4
and ebx, 1
cmp eax, 0xa
jge 0x1005c0a4
add eax, 0x30
jmp 0x1005c0b6
cmp dword [esp + 0x184], 0
je 0x1005c0b3
add eax, 0x37
jmp 0x1005c0b6
add eax, 0x57
mov byte [edi], al
inc edi
test edx, edx
jle 0x1005f7e2
dec edx
test ecx, ecx
jne 0x1005c08c
cmp ebp, dword [esp + 0x1c]
jae 0x1005f5b6
inc ebp
mov ecx, 8
mov esi, dword [esp + ebp*4 + 0x660]
jmp 0x1005c08c
test eax, eax
mov dword [esp + 0x130], eax
mov eax, 0
setl al
add eax, 0x4d104d42
mov dword [esp + 0x664], esi
mov dword [esp + 0x668], 0
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x130]
imul dword [esp + 0x134]
mov dword [esp + 0x138], edx
fld dword [esp + 0x238]
mov edi, ebx
mov edx, dword [esp + 0x838]
lea esi, [ebp + 1]
shr edx, 0x1c
and edi, 0x41
mov eax, dword [esp + 0x844]
and edx, 0xfffffff8
and eax, 2
mov dword [esp + 0x1cc], edx
xor edx, edx
mov dword [esp + 0x16c], eax
mov eax, ebx
movsx ecx, word [esp + 0x13a]
and eax, 2
inc ecx
and ebx, 0x14
mov dword [esp + 0x148], ecx
mov dword [esp + 0x2cc], ebp
mov dword [esp + 0x184], ebx
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], edx
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1c8], esi
mov ebp, ecx
jmp 0x1005c1b9
fld dword [esp + 0x238]
mov edx, dword [esp + 0x1c0]
neg edx
lea ebp, [edx + 1]
cmp dword [esp + 0x16c], 0
je 0x1005c258
cmp dword [esp + 0x244], 0
jge 0x1005c1f3
mov eax, dword [esp + 0x244]
neg eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x244], 0
mov eax, dword [esp + 0x244]
lea edx, [eax + ebp]
mov dword [esp + 0x248], edx
cmp edx, dword [esp + 0x83c]
jle 0x1005c24a
sub edx, dword [esp + 0x83c]
neg edx
mov ecx, dword [esp + 0x1e0]
add edx, dword [esp + 0x144]
test ecx, ecx
mov eax, dword [esp + 0x854]
mov ebx, dword [esp + 0x83c]
mov dword [esp + 0x248], ebx
je 0x1005c23f
mov ecx, edx
mov dword [eax], ebp
mov dword [esp + 0x1e0], ecx
jmp 0x1005c261
cmp dword [esp + 0x248], 0
jle 0x1005f8db
mov eax, dword [esp + 0x854]
mov dword [eax], ebp
mov edx, ebp
neg edx
jne 0x1005c2be
mov esi, dword [esp + 0x240]
and esi, 0x7f800000
shr esi, 0x17
je 0x1005c28a
mov eax, dword [esp + 0x240]
or eax, 0xff800000
shl eax, 8
jmp 0x1005c2a3
mov eax, dword [esp + 0x240]
xor esi, esi
shl eax, 9
test eax, eax
jle 0x1005c2a1
add eax, eax
inc esi
test eax, eax
jg 0x1005c29a
neg esi
mov dword [esp + 0x664], eax
add esi, 0xffffff82
xor eax, eax
mov edi, 0x18
mov ebx, 1
jmp 0x1005c456
cmp dword [esp + 0x248], 0xf
jge 0x1005c2d1
cmp edx, 0x24
jle 0x1005c39c
xor eax, eax
mov dword [esp + 0x7a0], eax
mov dword [esp + 0x7a4], eax
mov dword [esp + 0x7a8], eax
mov dword [esp + 0x7ac], eax
mov dword [esp + 0x7b0], eax
mov dword [esp + 0x7b4], eax
mov dword [esp + 0x7b8], eax
mov dword [esp + 0x7bc], eax
mov dword [esp + 0x7c0], eax
mov dword [esp + 0x7c4], eax
mov dword [esp + 0x7c8], eax
mov dword [esp + 0x7cc], eax
mov dword [esp + 0x7d0], eax
mov dword [esp + 0x7d4], eax
mov dword [esp + 0x7d8], eax
mov dword [esp + 0x7dc], eax
cmp edx, 0xfffffeaa
jl 0x1005c393
cmp edx, 0x159
jg 0x1005c393
mov edi, 0x80
cmp dword [esp + 0x248], 0x11
jg 0x1005c367
mov edi, 0x40
cmp edi, 0x80
setne al
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], edi
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x148], ebp
fstp st(0)
jmp 0x1005cb03
mov edi, 0x80
xor eax, eax
jmp 0x1005c370
fld qword [edx*8 + 0x10216ab8]
fmul st(1)
fstp qword [esp + 0x358]
mov ebx, dword [esp + 0x35c]
mov esi, ebx
and esi, 0x7ff00000
mov eax, dword [esp + 0x358]
shr esi, 0x14
je 0x1005c3dc
or ebx, 0xfff00000
mov edi, eax
shl ebx, 0xb
shr edi, 0x15
shl eax, 0xb
or ebx, edi
jmp 0x1005c42d
test ebx, ebx
je 0x1005c417
shl ebx, 0xc
mov dword [esp], 0
test ebx, ebx
jle 0x1005c3fb
mov ecx, dword [esp]
add ebx, ebx
inc ecx
test ebx, ebx
jg 0x1005c3f1
mov dword [esp], ecx
mov ecx, dword [esp]
mov esi, ecx
add ecx, 0xc
mov edi, eax
mov dword [esp], ecx
neg ecx
shr edi, cl
neg esi
mov ecx, dword [esp]
or ebx, edi
shl eax, cl
jmp 0x1005c42d
mov ebx, eax
xor esi, esi
test eax, eax
jle 0x1005c426
add ebx, ebx
inc esi
test ebx, ebx
jg 0x1005c41f
add esi, 0x14
xor eax, eax
neg esi
test eax, eax
mov dword [esp + 0x664], ebx
mov ebx, 0
setne bl
mov edi, 0x35
add esi, 0xfffffc02
mov dword [esp + 0x668], eax
inc ebx
mov eax, 1
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], edi
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x148], ebp
fstp st(0)
test esi, esi
jg 0x1005c1a6
mov edi, esi
neg edi
je 0x1005c58c
mov ecx, edi
lea ebp, [ebx - 1]
mov edx, dword [esp + ebx*4 + 0x660]
neg ecx
mov eax, edx
shl eax, cl
mov ecx, edi
shr edx, cl
mov dword [esp + ebx*4 + 0x664], eax
mov dword [esp + ebx*4 + 0x660], edx
cmp ebx, 1
je 0x1005c585
mov ecx, ebp
shr ecx, 1
je 0x1005fcb0
xor edx, edx
lea eax, [esp + ebx*4 + 0x65c]
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x160], ebp
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c4], edi
mov esi, edx
nop
lea esi, [esi]
mov edi, dword [esi + eax]
mov ebx, edi
mov ebp, dword [esp + 0x2c8]
mov ecx, ebp
shl ebx, cl
inc edx
or dword [esi + eax + 4], ebx
mov ebx, dword [esi + eax - 4]
mov ecx, dword [esp + 0x2c4]
shr edi, cl
mov ecx, ebp
mov ebp, ebx
shl ebp, cl
mov ecx, dword [esp + 0x2c4]
or edi, ebp
shr ebx, cl
mov dword [esi + eax], edi
mov dword [esi + eax - 4], ebx
add esi, 0xfffffff8
cmp edx, dword [esp + 0x2c0]
jb 0x1005c4f0
mov ebp, dword [esp + 0x160]
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x250]
mov edi, ecx
mov esi, dword [esp + 0x2c8]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x1005c57e
sub ebp, edx
mov ecx, esi
mov eax, dword [esp + ebp*4 + 0x664]
shl eax, cl
mov ecx, edi
or dword [esp + ebp*4 + 0x668], eax
shr dword [esp + ebp*4 + 0x664], cl
mov eax, dword [esp + ebx*4 + 0x664]
jmp 0x1005c585
mov eax, dword [esp + ebx*4 + 0x664]
xor edx, edx
cmp edx, eax
adc ebx, 0
mov ecx, dword [esp + 0x248]
cmp ecx, 0x27
mov eax, dword [esp + 0x2cc]
jle 0x1005c5a4
mov ecx, 0x27
mov edx, dword [esp + 0x1c8]
mov byte [eax], 0x30
mov dword [esp + 0x1d0], edx
cmp ecx, dword [esp + 0x1e0]
jle 0x1005c796
sub ecx, dword [esp + 0x1e0]
je 0x1005c796
xor eax, eax
mov dword [esp + 0x2d0], ecx
xor edi, edi
mov dword [esp + 0x660], 0
test ebx, ebx
je 0x1005c766
mov esi, dword [esp + ebx*4 + 0x660]
mov edx, 0
mov dword [esp + ebx*4 + 0x660], 0
je 0x1005c757
mov ecx, ebx
shr ecx, 1
je 0x1005f992
lea ebp, [esp + ebx*4 + 0x660]
mov dword [esp + 0x258], eax
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x254], edi
mov dword [esp + 0x250], ebx
mov eax, edx
xor ebx, ebx
lea ecx, [esi + esi*4]
inc edx
cmp ecx, esi
mov dword [esp + 0x2f0], edx
mov edx, ebx
setb dl
lea edi, [ecx + ecx]
shr esi, 0x1e
add esi, edx
mov edx, ecx
shr edx, 0x1f
add esi, esi
or esi, edx
mov edx, dword [eax + ebp - 4]
mov dword [esp + 0x2f4], edx
mov edx, dword [eax + ebp]
lea ecx, [edx + ecx*2]
mov dword [eax + ebp], ecx
cmp ecx, edi
mov ecx, ebx
mov edi, dword [esp + 0x2f4]
setb cl
xor edx, edx
add esi, ecx
lea ecx, [edi + edi*4]
cmp ecx, edi
setb dl
lea esi, [esi + ecx*2]
shr edi, 0x1e
add edi, edx
mov edx, ecx
add ecx, ecx
add edi, edi
cmp esi, ecx
mov dword [eax + ebp - 4], esi
setb bl
shr edx, 0x1f
or edi, edx
mov edx, dword [esp + 0x2f0]
add edi, ebx
mov esi, dword [eax + ebp - 8]
mov dword [eax + ebp - 8], edi
add eax, 0xfffffff8
cmp edx, dword [esp + 0x2ec]
jb 0x1005c639
mov eax, dword [esp + 0x258]
lea edx, [edx + edx + 1]
mov edi, dword [esp + 0x254]
mov ebx, dword [esp + 0x250]
lea ecx, [edx - 1]
cmp ecx, ebx
jae 0x1005c750
neg edx
lea ebp, [esi + esi*4]
add edx, ebx
xor ecx, ecx
cmp ebp, esi
mov dword [esp + 0x258], eax
mov dword [esp + 0x254], edi
mov eax, dword [esp + edx*4 + 0x664]
lea edi, [eax + ebp*2]
mov eax, 0
setb cl
shr esi, 0x1e
add esi, ecx
lea ecx, [ebp + ebp]
cmp edi, ecx
mov dword [esp + edx*4 + 0x664], edi
setb al
add esi, esi
shr ebp, 0x1f
or esi, ebp
add esi, eax
mov dword [esp + edx*4 + 0x660], esi
mov edx, dword [esp + ebx*4 + 0x660]
mov eax, dword [esp + 0x258]
mov edi, dword [esp + 0x254]
jmp 0x1005c757
mov edx, dword [esp + ebx*4 + 0x660]
cmp edx, 1
mov edx, dword [esp + 0x660]
sbb ebx, 0
jmp 0x1005c768
xor edx, edx
mov ebp, dword [esp + 0x2cc]
lea ecx, [edx + 0x30]
add eax, 0x35269
mov byte [edi + ebp + 1], cl
lea ecx, [edi + ebp + 2]
inc edi
cmp edi, dword [esp + 0x2d0]
jb 0x1005c5da
mov dword [esp + 0x1d0], ecx
jmp 0x1005c79f
mov edx, dword [esp + 0x660]
xor eax, eax
mov esi, dword [esp + 0x1dc]
add eax, 0xffff
mov ebp, dword [esp + 0x1d0]
shr eax, 0x10
mov ebx, dword [esp + 0x664]
lea edi, [esi + 0x1f]
mov byte [ebp], 0
mov ebp, edi
and ebp, 0xffffffe0
mov ecx, ebp
sub ecx, esi
add ecx, eax
mov esi, dword [esp + 0x1d8]
shl esi, cl
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1e8], ecx
add ebx, 0x80000000
je 0x1005c801
xor eax, eax
cmp ebx, 0x80000000
setne al
mov dword [esp + 0x1f0], eax
jmp 0x1005c80c
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x2a8], edi
xor edi, edi
xor eax, eax
test ebx, ebx
mov ecx, dword [esp + 0x1cc]
setns al
and edx, 1
mov dword [esp + 0x1e4], eax
sub ebp, dword [esp + 0x1e8]
add eax, ecx
lea ecx, [eax + edx*2]
mov eax, dword [esp + 0x1f0]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x1c4]
shr eax, cl
and eax, 1
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1ec]
lea ecx, [esi + eax - 0x80000000]
lea eax, [esi + esi]
cmp ecx, eax
mov eax, edi
mov edi, dword [esp + 0x2a8]
setbe al
mov dword [esp + 0x2ac], eax
cmp ebp, 0x20
jb 0x1005cac1
mov eax, dword [esp + 0x1ec]
add eax, 0x80000001
cmp eax, 1
ja 0x1005fc5d
mov ecx, dword [esp + 0x1e8]
mov eax, ecx
shr edi, 5
shr eax, 5
sub edi, eax
mov esi, dword [esp + 0x1d8]
shl esi, cl
mov dword [esp + 0x2ac], esi
mov dword [esp + 0x2b0], esi
mov dword [esp + 0x164], edi
cmp edi, 1
jle 0x1005ca5c
lea eax, [edi - 1]
shr eax, 1
mov dword [esp + 0x2b8], eax
je 0x1005fca0
xor eax, eax
lea ecx, [esp + edi*4 + 0x660]
mov dword [esp + 0x2b4], ecx
xor ecx, ecx
mov dword [esp + 0x2a8], edi
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], esi
mov edi, ecx
mov ebp, dword [esp + 0x2b4]
inc eax
mov dword [esp + 0x2bc], eax
mov edx, dword [ecx + ebp]
xor eax, eax
test edx, edx
mov esi, dword [ecx + ebp - 4]
mov ebp, 0
setne al
add ecx, 0xfffffff8
or ebx, eax
xor eax, eax
test esi, esi
setne al
or ebx, eax
mov eax, dword [esp + 0x2ac]
add eax, edx
cmp eax, edx
mov eax, ebp
setb al
add eax, esi
cmp eax, esi
mov eax, ebp
setb al
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x2b0]
neg eax
add eax, edx
cmp eax, edx
mov edx, ebp
seta dl
xor eax, eax
neg edx
add edx, esi
cmp edx, esi
mov edx, dword [esp + 0x2a8]
seta al
mov dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x2bc]
lea edx, [edi + edx - 2]
add edi, 0xfffffffe
cmp eax, dword [esp + 0x2b8]
jb 0x1005c90d
mov dword [esp + 0x164], edx
lea eax, [eax + eax + 1]
mov edi, dword [esp + 0x2a8]
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x168]
lea ebp, [edi - 1]
lea ecx, [eax - 1]
cmp ecx, ebp
jae 0x1005fc8d
mov ebp, eax
mov eax, edi
xor ecx, ecx
sub eax, ebp
mov dword [esp + 0x15c], esi
neg ebp
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0x2ac]
mov esi, dword [esp + eax*4 + 0x664]
xor eax, eax
test esi, esi
lea edi, [edi + ebp]
setne al
add edx, esi
cmp edx, esi
mov dword [esp + 0x164], edi
setb cl
xor edx, edx
mov dword [esp + 0x2ac], ecx
mov ecx, dword [esp + 0x2b0]
neg ecx
add ecx, esi
cmp ecx, esi
mov esi, dword [esp + 0x15c]
seta dl
or ebx, eax
mov eax, 0
mov dword [esp + 0x2b0], edx
setge al
mov dword [esp + 0x1e4], eax
mov edx, dword [esp + 0x158]
mov ecx, dword [esp + 0x164]
mov eax, dword [esp + 0x2ac]
mov ebp, dword [esp + ecx*4 + 0x660]
add eax, ebp
sub ebp, dword [esp + 0x2b0]
xor eax, ebp
shr eax, 0x1f
mov dword [esp + 0x2ac], eax
test ebx, ebx
je 0x1005ca97
xor eax, eax
cmp ebx, 0x80000000
setne al
jmp 0x1005ca99
xor eax, eax
mov ebx, dword [esp + 0x1cc]
lea ebp, [ebx + edx*2]
add ebp, dword [esp + 0x1e4]
lea ecx, [ebp + eax*4]
mov eax, dword [esp + 0x1c4]
shr eax, cl
and eax, 1
mov dword [esp + 0x1d4], eax
cmp dword [esp + 0x2ac], 0
je 0x1005fc5d
test esi, esi
je 0x1005fc5d
cmp dword [esp + 0x1dc], 0x80
jae 0x1005fc1d
mov eax, 0x40
cmp dword [esp + 0x1dc], 0x40
jb 0x1005cafc
mov eax, 0x80
mov dword [esp + 0x1dc], eax
fld dword [esp + 0x238]
mov eax, dword [esp + 0x23c]
and eax, 0x7f800000
fstp st(0)
shr eax, 0x17
mov dword [esp + 0x1bc], eax
je 0x1005cb35
mov eax, dword [esp + 0x23c]
or eax, 0xff800000
shl eax, 8
jmp 0x1005cb6a
mov eax, dword [esp + 0x23c]
shl eax, 9
mov dword [esp + 0x1bc], 0
test eax, eax
jle 0x1005cb63
mov edx, dword [esp + 0x1bc]
add eax, eax
inc edx
test eax, eax
jg 0x1005cb55
mov dword [esp + 0x1bc], edx
neg dword [esp + 0x1bc]
xor edx, edx
mov dword [esp + 0x664], eax
mov dword [esp + 0x7e0], edx
mov dword [esp + 0x7ec], edx
mov dword [esp + 0x7f0], edx
mov dword [esp + 0x7f4], edx
mov dword [esp + 0x7f8], edx
mov dword [esp + 0x7fc], edx
mov dword [esp + 0x800], edx
mov dword [esp + 0x804], edx
mov dword [esp + 0x808], edx
mov dword [esp + 0x80c], edx
mov dword [esp + 0x810], edx
mov dword [esp + 0x814], edx
mov dword [esp + 0x818], edx
mov dword [esp + 0x81c], edx
mov ebx, dword [esp + 0x1c0]
cmp dword [esp + 0x1dc], 0x40
jne 0x1005d20a
mov edx, ebx
lea ecx, [edx + 0x2f]
cmp ecx, 0x5e
ja 0x1005cc5c
mov ebx, dword [esp + 0x148]
xor ecx, ecx
mov dword [esp + 0x7e8], ecx
mov dword [esp + 0x7e4], ecx
lea esi, [ebx*8]
neg esi
movsx ecx, word [edx*2 + 0x102165be]
mov ebp, dword [esi + 0x102163dc]
mov edi, dword [esi + 0x102163d8]
mov dword [esp + 0x7a4], ebp
mov ebp, 2
mov dword [esp + 0x7a8], edi
test edi, edi
jne 0x1005f99c
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005cc43
jmp 0x1005f1ce
cmp dword [esp + 0x1c0], 0
jl 0x1005f9f4
mov eax, ebx
sar eax, 3
movzx edx, word [eax*2 + 0x102167a2]
lea ecx, [eax + 1]
shr edx, 5
cmp edx, ebx
jle 0x1005cc83
mov ecx, eax
movzx edx, word [ecx*2 + 0x102167a0]
mov edi, edx
and edi, 0x1f
shr edx, 5
neg edx
add edx, ebx
movsx ebp, word [edi*2 + 0x10216818]
mov esi, dword [edi*8 + 0x10216724]
mov eax, dword [edi*8 + 0x10216720]
mov dword [esp + 0x124], ebp
mov dword [esp + 0x7e4], esi
movsx ecx, word [edx*2 + 0x102165be]
mov esi, 2
mov ebx, dword [edx*8 + 0x102163dc]
mov edx, dword [edx*8 + 0x102163d8]
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x120], ecx
mov dword [esp + 0x7a4], ebx
mov dword [esp + 0x7a8], edx
test edx, edx
jne 0x1005f9e3
dec esi
lea ebx, [esp + esi*4 + 0x7a0]
cmp dword [ebx], 0
lea ecx, [esi*4]
je 0x1005ccfa
mov dword [esp + 0x114], eax
mov eax, dword [ebx]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x110]
mul dword [esp + 0x114]
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], edx
mov eax, dword [ebx]
mov edx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x118]
mov ebp, dword [esp + 0x7e4]
mov dword [esp + esi*4 + 0x624], 0
mov dword [esp + 0x298], eax
mov dword [esp + esi*4 + 0x5e4], edx
mov dword [esp + esi*4 + 0x5e8], ebx
mov dword [esp + 0x29c], ebp
mov eax, dword [esp + 0x298]
mul dword [esp + 0x29c]
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], edx
mov ebp, dword [esp + 0x2a0]
xor eax, eax
mov edi, dword [esp + esi*4 + 0x5e4]
mov ebx, esi
add edi, ebp
cmp edi, ebp
mov dword [esp + esi*4 + 0x620], eax
setb al
add eax, dword [esp + 0x2a4]
mov dword [esp + esi*4 + 0x5e4], edi
dec ebx
mov dword [esp + esi*4 + 0x5e0], eax
js 0x1005ce48
mov ebp, esi
shr ebp, 1
je 0x1005f9d9
xor edi, edi
lea edx, [esp + ecx + 0x620]
mov dword [esp + 0x280], ebx
lea eax, [esp + ecx + 0x5e0]
mov dword [esp + 0x284], esi
xor esi, esi
lea ebx, [edi*8]
inc edi
neg ebx
mov dword [edx + ebx - 4], esi
mov dword [eax + ebx - 4], esi
mov dword [edx + ebx - 8], esi
mov dword [eax + ebx - 8], esi
cmp edi, ebp
jb 0x1005cdf6
mov ebx, dword [esp + 0x280]
lea eax, [edi + edi + 1]
mov esi, dword [esp + 0x284]
lea edx, [eax - 1]
cmp edx, esi
jae 0x1005ce48
shl eax, 2
lea edx, [esp + ecx + 0x620]
neg eax
lea ecx, [esp + ecx + 0x5e0]
xor ebp, ebp
mov dword [eax + edx], ebp
mov dword [eax + ecx], ebp
test ebx, ebx
je 0x1005ceea
mov dword [esp + 0x284], esi
mov ebp, 2
lea esi, [esp + ebx*4 + 0x620]
lea ecx, [esp + ebx*4 + 0x5e0]
mov eax, dword [esp + ebx*4 + 0x7a0]
mov edx, dword [esp + ebp*4 + 0x7e0]
mov dword [esp + 0x348], eax
mov dword [esp + 0x34c], edx
mov eax, dword [esp + 0x348]
mul dword [esp + 0x34c]
mov dword [esp + 0x350], eax
mov dword [esp + 0x354], edx
mov edx, dword [esp + 0x350]
mov edi, dword [ecx + ebp*4]
add edi, edx
mov dword [ecx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x354]
mov edx, dword [ecx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebp*4 - 4], edx
setb al
add dword [esi + ebp*4 - 8], eax
dec ebp
jne 0x1005ce6a
dec ebx
jne 0x1005ce57
mov esi, dword [esp + 0x284]
mov edx, dword [esp + 0x120]
lea eax, [esi + 2]
mov ecx, dword [esp + 0x124]
lea ebx, [esp + esi*4 + 0x7a8]
mov dword [esp + 0x128], ebx
lea ebp, [esi + 1]
add ecx, edx
mov edx, dword [ebx - 0x1c0]
mov dword [ebx], edx
cmp eax, 1
je 0x1005d055
mov edx, ebp
mov dword [esp + 0x12c], 0
shr edx, 1
je 0x1005f9cf
xor ebx, ebx
lea edi, [esp + esi*4 + 0x7a4]
mov dword [esp + 0xac], edi
lea edi, [esp + esi*4 + 0x5e4]
mov dword [esp + 0xa8], edi
lea edi, [esp + esi*4 + 0x624]
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
mov dword [esp + 0x234], edi
mov dword [esp + 0xa4], eax
mov dword [esp + 0x230], edx
mov dword [esp + 0x284], esi
mov edi, ebx
mov ebp, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0x12c]
mov esi, dword [esp + 0x234]
inc ebx
mov edx, dword [edi + ebp]
add eax, dword [edi + esi]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + esi - 4]
mov esi, dword [edi + ebp - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ecx - 4], esi
setb al
add edi, 0xfffffff8
cmp ebx, dword [esp + 0x230]
jb 0x1005cf9a
mov dword [esp + 0x12c], eax
lea ebx, [ebx + ebx + 1]
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0x284]
lea edx, [ebx - 1]
cmp edx, ebp
jae 0x1005d04c
shl ebx, 2
lea edi, [esp + esi*4 + 0x5e4]
neg ebx
mov dword [esp + 0x18c], ebp
lea ebp, [esp + esi*4 + 0x624]
mov edx, dword [esp + 0x12c]
lea esi, [esp + esi*4 + 0x7a4]
add edx, dword [ebx + ebp + 4]
add edx, dword [ebx + edi + 4]
mov dword [ebx + esi + 4], edx
mov ebx, dword [esp + 0x128]
mov ebp, dword [esp + 0x18c]
mov edx, dword [ebx]
jmp 0x1005d055
mov edx, dword [esp + 0x128]
mov edx, dword [edx]
test edx, edx
jne 0x1005d070
dec eax
lea edx, [esp + eax*4 + 0x7a0]
cmp dword [edx], 0
je 0x1005d059
mov dword [esp + 0x128], edx
lea ebp, [eax - 1]
mov ebx, dword [esp + 0x7a4]
test ebx, ebx
jle 0x1005d119
mov ecx, dword [esp + 0x120]
add ebx, ebx
mov edx, dword [esp + 0x124]
mov dword [esp + 0x7a4], ebx
lea ecx, [edx + ecx - 1]
cmp eax, 2
jb 0x1005d119
lea ebx, [eax - 1]
shr ebx, 1
je 0x1005f9c5
mov dword [esp + 0xa4], eax
xor edx, edx
mov eax, dword [esp + edx*8 + 0x7a8]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x7a4], esi
mov esi, dword [esp + edx*8 + 0x7ac]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x7a8], eax
mov dword [esp + edx*8 + 0x7ac], esi
inc edx
cmp edx, ebx
jb 0x1005d0b3
mov eax, dword [esp + 0xa4]
lea esi, [edx + edx + 1]
lea edx, [esi - 1]
cmp edx, ebp
jae 0x1005d119
mov ebx, dword [esp + esi*4 + 0x7a4]
mov edx, ebx
shr edx, 0x1f
add ebx, ebx
or dword [esp + esi*4 + 0x7a0], edx
mov dword [esp + esi*4 + 0x7a4], ebx
mov edx, dword [esp + 0x128]
cmp dword [edx], 0
je 0x1005d127
mov ebp, eax
cmp ebp, 2
jb 0x1005d1f0
mov eax, dword [esp + 0x7ac]
shr eax, 0x1f
mov edx, dword [esp + 0x7a8]
add edx, eax
mov dword [esp + 0x7a8], edx
cmp edx, eax
jae 0x1005d1ca
mov dword [esp + 0x7a0], 0
mov ebp, 1
cmp dword [esp + 0x7a4], 0xffffffff
je 0x1005d178
mov ebx, 4
lea esi, [esp + 0x7a4]
mov eax, dword [esi]
jmp 0x1005d192
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x1005d178
test ebp, ebp
je 0x1005d1a1
inc eax
mov dword [esi], eax
mov eax, dword [esp + 0x664]
jmp 0x1005f1ce
mov dword [esp + 0x7a4], 0x80000000
inc ecx
mov eax, dword [esp + 0x664]
mov ebp, 1
mov ebx, 4
lea esi, [esp + 0x7a4]
jmp 0x1005f1ce
mov ebp, 2
test edx, edx
jne 0x1005f9ad
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005d1d7
jmp 0x1005f1c7
mov eax, dword [esp + 0x664]
lea ebx, [ebp*4]
lea esi, [esp + ebp*4 + 0x7a0]
jmp 0x1005f1ce
mov dword [esp + 0x7e8], edx
mov dword [esp + 0x7e4], edx
mov dword [esp + 0x760], edx
mov dword [esp + 0x774], edx
mov dword [esp + 0x778], edx
mov dword [esp + 0x77c], edx
mov dword [esp + 0x780], edx
mov dword [esp + 0x784], edx
mov dword [esp + 0x788], edx
mov dword [esp + 0x78c], edx
mov dword [esp + 0x790], edx
mov dword [esp + 0x794], edx
mov dword [esp + 0x798], edx
mov dword [esp + 0x79c], edx
cmp dword [esp + 0x1c0], 0xfffffdea
jge 0x1005d98b
mov esi, dword [esp + 0x1dc]
shr esi, 5
cmp dword [esp + 0x1c0], 0xfffff000
jle 0x1005d2c5
mov ebp, 0x1000
mov dword [esp + 0x770], edx
xor edi, edi
mov dword [esp + 0x76c], edx
mov ecx, 3
mov dword [esp + 0x768], edx
mov dword [esp + 0x764], edx
mov edx, dword [esp + 0x14c]
jmp 0x1005d31d
mov eax, ebx
mov ebp, 0x1000
mov ecx, 3
lea ebx, [eax + 0x1000]
mov eax, ecx
shl eax, 4
movsx edx, word [ecx*2 + 0x1021621e]
mov edi, dword [eax + 0x10215f0c]
mov dword [esp + 0x764], edi
mov edi, dword [eax + 0x10215f08]
mov dword [esp + 0x768], edi
mov edi, dword [eax + 0x10215f04]
mov eax, dword [eax + 0x10215f00]
mov dword [esp + 0x76c], edi
mov edi, 4
mov dword [esp + 0x770], eax
mov dword [esp + 0x14c], edx
lea eax, [esi - 1]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], esi
sar ebp, 1
dec ecx
js 0x1005e00d
mov eax, ebp
neg eax
cmp ebx, eax
jg 0x1005d335
add ebx, ebp
test edi, edi
je 0x1005d97f
mov esi, ecx
shl esi, 4
movsx eax, word [ecx*2 + 0x1021621e]
mov dword [esp + 0xd0], eax
mov edx, dword [esi + 0x10215f0c]
mov eax, dword [esi + 0x10215f08]
mov dword [esp + 0x7e4], edx
mov dword [esp + 0x7e8], eax
mov edx, dword [esi + 0x10215f04]
mov esi, dword [esi + 0x10215f00]
mov eax, dword [esp + edi*4 + 0x760]
mov dword [esp + 0x7ec], edx
mov dword [esp + 0x7f0], esi
mov dword [esp + 0xc0], esi
lea esi, [edi + 3]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xbc]
mul dword [esp + 0xc0]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov dword [esp + esi*4 + 0x4e0], eax
mov eax, 3
mov dword [esp + esi*4 + 0x4e4], edx
mov dword [esp + 0xe0], ecx
mov ecx, eax
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xcc], ebx
xor ebx, ebx
mov edx, dword [esp + edi*4 + 0x760]
mov ebp, dword [esp + ecx*4 + 0x7e0]
mov dword [esp + esi*4 + 0x520], 0
mov dword [esp + 0x270], edx
mov dword [esp + 0x274], ebp
mov eax, dword [esp + 0x270]
mul dword [esp + 0x274]
mov dword [esp + 0x278], eax
mov dword [esp + 0x27c], edx
mov edx, dword [esp + 0x278]
mov eax, ebx
mov ebp, dword [esp + esi*4 + 0x4e0]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x4e0], ebp
setb al
dec esi
add eax, dword [esp + 0x27c]
mov dword [esp + esi*4 + 0x4e0], eax
dec ecx
jne 0x1005d406
mov eax, esi
mov ecx, dword [esp + 0xe0]
dec eax
mov ebp, dword [esp + 0xd4]
mov ebx, dword [esp + 0xcc]
mov dword [esp + esi*4 + 0x520], 0
js 0x1005d56e
mov eax, esi
shr eax, 1
mov dword [esp + 0xe8], eax
je 0x1005fa62
xor eax, eax
lea edx, [esp + esi*4 + 0x4dc]
mov dword [esp + 0xb8], edx
lea edx, [esp + esi*4 + 0x51c]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xb0], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xe8]
inc eax
mov dword [edx + ecx], esi
mov dword [edx + ebx], esi
mov dword [edx + ecx - 4], esi
mov dword [edx + ebx - 4], esi
add edx, 0xfffffff8
cmp eax, ebp
jb 0x1005d506
mov esi, dword [esp + 0xb0]
lea edx, [eax + eax + 1]
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xd4]
mov ebx, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, esi
jae 0x1005d56e
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x26c], edi
lea edi, [esp + esi*4 + 0x51c]
lea esi, [esp + esi*4 + 0x4dc]
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edi, dword [esp + 0x26c]
mov esi, edi
dec esi
je 0x1005d642
mov dword [esp + 0x26c], edi
mov eax, 4
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xcc], ebx
mov ebx, eax
lea ebp, [esp + esi*4 + 0x520]
lea ecx, [esp + esi*4 + 0x4e0]
mov eax, dword [esp + esi*4 + 0x760]
mov edx, dword [esp + ebx*4 + 0x7e0]
mov dword [esp + 0x328], eax
mov dword [esp + 0x32c], edx
mov eax, dword [esp + 0x328]
mul dword [esp + 0x32c]
mov dword [esp + 0x330], eax
mov dword [esp + 0x334], edx
mov edx, dword [esp + 0x330]
mov edi, dword [ecx + ebx*4]
add edi, edx
mov dword [ecx + ebx*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x334]
mov edx, dword [ecx + ebx*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebx*4 - 4], edx
setb al
add dword [ebp + ebx*4 - 8], eax
dec ebx
jne 0x1005d5a8
mov eax, 4
dec esi
jne 0x1005d598
mov edi, dword [esp + 0x26c]
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xd4]
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + 0x14c]
lea edx, [edi + 4]
add esi, dword [esp + 0xd0]
lea eax, [esp + edi*4 + 0x770]
mov dword [esp + 0x14c], esi
mov esi, dword [eax - 0x280]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], eax
mov dword [eax], esi
lea eax, [edi + 3]
cmp edx, 1
je 0x1005d7d5
mov edx, eax
mov dword [esp + 0xe4], 0
shr edx, 1
mov dword [esp + 0x214], edx
je 0x1005fa58
xor esi, esi
lea edx, [esp + edi*4 + 0x76c]
mov dword [esp + 0x94], edx
lea edx, [esp + edi*4 + 0x4ec]
mov dword [esp + 0x90], edx
lea edx, [esp + edi*4 + 0x52c]
mov dword [esp + 0x26c], edi
mov dword [esp + 0x98], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x210], edx
mov dword [esp + 0xd4], ebp
mov edi, esi
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xe4]
mov ebp, dword [esp + 0x210]
inc esi
mov edx, dword [edi + ebx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ebx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ecx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x214]
jb 0x1005d705
mov dword [esp + 0xe4], eax
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x26c]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xd4]
mov ebx, dword [esp + 0xcc]
lea esi, [edx - 1]
cmp esi, eax
jae 0x1005d7cc
shl edx, 2
lea esi, [esp + edi*4 + 0x4ec]
neg edx
mov dword [esp + 0x98], eax
mov dword [esp + 0xe0], ecx
lea ecx, [esp + edi*4 + 0x52c]
mov eax, dword [esp + 0xe4]
lea edi, [esp + edi*4 + 0x76c]
add eax, dword [edx + ecx + 4]
add eax, dword [edx + esi + 4]
mov dword [edx + edi + 4], eax
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xe0]
mov esi, dword [edx]
jmp 0x1005d7d5
mov edx, dword [esp + 0xd8]
mov esi, dword [edx]
test esi, esi
jne 0x1005d800
mov edx, dword [esp + 0xdc]
dec edx
lea eax, [esp + edx*4 + 0x760]
cmp dword [eax], 0
je 0x1005d7e0
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x764]
test edx, edx
jle 0x1005d8bc
dec dword [esp + 0x14c]
add edx, edx
mov dword [esp + 0x764], edx
cmp dword [esp + 0xdc], 2
jb 0x1005d8bc
mov edx, dword [esp + 0xdc]
lea edi, [edx - 1]
shr edi, 1
je 0x1005fa4e
mov dword [esp + 0xd4], ebp
xor esi, esi
mov dword [esp + 0xcc], ebx
mov edx, dword [esp + esi*8 + 0x768]
mov ebx, edx
shr ebx, 0x1f
add edx, edx
or dword [esp + esi*8 + 0x764], ebx
mov ebx, dword [esp + esi*8 + 0x76c]
mov ebp, ebx
shr ebp, 0x1f
add ebx, ebx
or edx, ebp
mov dword [esp + esi*8 + 0x768], edx
mov dword [esp + esi*8 + 0x76c], ebx
inc esi
cmp esi, edi
jb 0x1005d84f
mov ebp, dword [esp + 0xd4]
lea edx, [esi + esi + 1]
mov ebx, dword [esp + 0xcc]
lea esi, [edx - 1]
cmp esi, eax
jae 0x1005d8bc
mov edi, dword [esp + edx*4 + 0x764]
mov esi, edi
shr esi, 0x1f
add edi, edi
or dword [esp + edx*4 + 0x760], esi
mov dword [esp + edx*4 + 0x764], edi
mov edx, dword [esp + 0xd8]
mov edi, eax
cmp dword [edx], 0
je 0x1005d8d1
mov edi, dword [esp + 0xdc]
cmp edi, dword [esp + 0x154]
jb 0x1005d335
mov edi, dword [esp + 0x154]
mov eax, edi
mov edx, dword [esp + eax*4 + 0x764]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x760]
add eax, edx
cmp eax, edx
jae 0x1005d95e
mov edx, edi
mov edi, dword [esp + 0x150]
mov dword [esp + edx*4 + 0x760], eax
lea edx, [esp + edx*4 + 0x75c]
mov dword [esp + 0x760], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x1005d936
dec edi
lea edx, [esp + edi*4 + 0x760]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x1005d927
test edi, edi
je 0x1005d942
inc eax
mov dword [edx], eax
jmp 0x1005d335
inc dword [esp + 0x14c]
mov edi, 1
mov dword [esp + 0x764], 0x80000000
jmp 0x1005d335
mov edx, edi
mov dword [esp + edx*4 + 0x760], eax
test eax, eax
jne 0x1005d335
dec edi
cmp dword [esp + edi*4 + 0x760], 0
je 0x1005d96f
jmp 0x1005d335
mov esi, dword [esp + 0x154]
jmp 0x1005d2d7
cmp dword [esp + 0x1c0], 0x216
jle 0x1005dfef
mov esi, dword [esp + 0x1dc]
shr esi, 5
cmp dword [esp + 0x1c0], 0x1000
jge 0x1005d9e4
mov ecx, 0x1000
mov dword [esp + 0x770], edx
xor edi, edi
mov dword [esp + 0x76c], edx
mov ebp, 3
mov dword [esp + 0x768], edx
mov dword [esp + 0x764], edx
mov edx, dword [esp + 0x14c]
jmp 0x1005da3c
mov eax, ebx
mov ecx, 0x1000
mov ebp, 3
lea ebx, [eax - 0x1000]
mov eax, ebp
shl eax, 4
movsx edx, word [ebp*2 + 0x1021623a]
mov edi, dword [eax + 0x1021608c]
mov dword [esp + 0x764], edi
mov edi, dword [eax + 0x10216088]
mov dword [esp + 0x768], edi
mov edi, dword [eax + 0x10216084]
mov eax, dword [eax + 0x10216080]
mov dword [esp + 0x76c], edi
mov edi, 4
mov dword [esp + 0x770], eax
mov dword [esp + 0x14c], edx
lea eax, [esi - 1]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], esi
sar ecx, 1
dec ebp
js 0x1005e00d
cmp ebx, ecx
jl 0x1005da54
sub ebx, ecx
test edi, edi
je 0x1005dfe3
mov esi, ebp
shl esi, 4
movsx eax, word [ebp*2 + 0x1021623a]
mov dword [esp + 0xd0], eax
mov edx, dword [esi + 0x1021608c]
mov eax, dword [esi + 0x10216088]
mov dword [esp + 0x7e4], edx
mov dword [esp + 0x7e8], eax
mov edx, dword [esi + 0x10216084]
mov esi, dword [esi + 0x10216080]
mov eax, dword [esp + edi*4 + 0x760]
mov dword [esp + 0x7ec], edx
mov dword [esp + 0x7f0], esi
mov dword [esp + 0x24], esi
lea esi, [edi + 3]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mul dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x360], eax
mov eax, 3
mov dword [esp + esi*4 + 0x364], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ecx
mov ecx, eax
mov dword [esp + 0xcc], ebx
xor ebx, ebx
mov edx, dword [esp + edi*4 + 0x760]
mov ebp, dword [esp + ecx*4 + 0x7e0]
mov dword [esp + esi*4 + 0x3a0], 0
mov dword [esp + 0x200], edx
mov dword [esp + 0x204], ebp
mov eax, dword [esp + 0x200]
mul dword [esp + 0x204]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], edx
mov edx, dword [esp + 0x208]
mov eax, ebx
mov ebp, dword [esp + esi*4 + 0x360]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x360], ebp
setb al
dec esi
add eax, dword [esp + 0x20c]
mov dword [esp + esi*4 + 0x360], eax
dec ecx
jne 0x1005db03
mov eax, esi
mov ebp, dword [esp + 0x3c]
dec eax
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xcc]
mov dword [esp + esi*4 + 0x3a0], 0
js 0x1005dc41
mov eax, esi
shr eax, 1
mov dword [esp + 0x44], eax
je 0x1005fa80
xor eax, eax
lea edx, [esp + esi*4 + 0x35c]
mov dword [esp + 0x1c], edx
lea edx, [esp + esi*4 + 0x39c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x14], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x44]
inc eax
mov dword [edx + ecx], esi
mov dword [edx + ebx], esi
mov dword [edx + ecx - 4], esi
mov dword [edx + ebx - 4], esi
add edx, 0xfffffff8
cmp eax, ebp
jb 0x1005dbe2
mov esi, dword [esp + 0x14]
lea edx, [eax + eax + 1]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, esi
jae 0x1005dc41
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x26c], edi
lea edi, [esp + esi*4 + 0x39c]
lea esi, [esp + esi*4 + 0x35c]
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edi, dword [esp + 0x26c]
mov esi, edi
dec esi
je 0x1005dd09
mov dword [esp + 0x26c], edi
mov eax, 4
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0xcc], ebx
mov ebx, eax
lea ebp, [esp + esi*4 + 0x3a0]
lea ecx, [esp + esi*4 + 0x360]
mov eax, dword [esp + esi*4 + 0x760]
mov edx, dword [esp + ebx*4 + 0x7e0]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], edx
mov eax, dword [esp + 0x2f8]
mul dword [esp + 0x2fc]
mov dword [esp + 0x300], eax
mov dword [esp + 0x304], edx
mov edx, dword [esp + 0x300]
mov edi, dword [ecx + ebx*4]
add edi, edx
mov dword [ecx + ebx*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x304]
mov edx, dword [ecx + ebx*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebx*4 - 4], edx
setb al
add dword [ebp + ebx*4 - 8], eax
dec ebx
jne 0x1005dc75
mov eax, 4
dec esi
jne 0x1005dc65
mov edi, dword [esp + 0x26c]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + 0x14c]
lea edx, [edi + 4]
add esi, dword [esp + 0xd0]
lea eax, [esp + edi*4 + 0x770]
mov dword [esp + 0x14c], esi
mov esi, dword [eax - 0x400]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov dword [eax], esi
lea eax, [edi + 3]
cmp edx, 1
je 0x1005de54
mov edx, eax
mov dword [esp + 0x40], 0
shr edx, 1
mov dword [esp + 0x174], edx
je 0x1005fa76
xor esi, esi
lea edx, [esp + edi*4 + 0x36c]
mov dword [esp + 0xc], edx
lea edx, [esp + edi*4 + 0x3ac]
mov dword [esp + 0x170], edx
lea edx, [esp + edi*4 + 0x76c]
mov dword [esp + 0x26c], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x3c], ebp
mov edi, esi
mov ebx, edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x170]
inc esi
mov edx, dword [edi + ecx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ebx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ecx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ebx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x174]
jb 0x1005dda5
mov dword [esp + 0x40], eax
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x26c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xcc]
lea esi, [edx - 1]
cmp esi, eax
jae 0x1005de4e
shl edx, 2
lea esi, [esp + edi*4 + 0x36c]
neg edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], ebp
lea ebp, [esp + edi*4 + 0x3ac]
mov eax, dword [esp + 0x40]
lea edi, [esp + edi*4 + 0x76c]
add eax, dword [edx + ebp + 4]
add eax, dword [edx + esi + 4]
mov dword [edx + edi + 4], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov esi, dword [edx]
jmp 0x1005de54
mov edx, dword [esp + 0x34]
mov esi, dword [edx]
test esi, esi
jne 0x1005de76
mov edx, dword [esp + 0x38]
dec edx
lea eax, [esp + edx*4 + 0x760]
cmp dword [eax], 0
je 0x1005de5c
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x764]
test edx, edx
jle 0x1005df26
dec dword [esp + 0x14c]
add edx, edx
mov dword [esp + 0x764], edx
cmp dword [esp + 0x38], 2
jb 0x1005df26
mov edx, dword [esp + 0x38]
lea edi, [edx - 1]
shr edi, 1
je 0x1005fa6c
mov dword [esp + 0x30], ecx
xor esi, esi
mov dword [esp + 0xcc], ebx
mov edx, dword [esp + esi*8 + 0x768]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + esi*8 + 0x764], ecx
mov ecx, dword [esp + esi*8 + 0x76c]
mov ebx, ecx
shr ebx, 0x1f
add ecx, ecx
or edx, ebx
mov dword [esp + esi*8 + 0x768], edx
mov dword [esp + esi*8 + 0x76c], ecx
inc esi
cmp esi, edi
jb 0x1005debc
mov ecx, dword [esp + 0x30]
lea edx, [esi + esi + 1]
mov ebx, dword [esp + 0xcc]
lea esi, [edx - 1]
cmp esi, eax
jae 0x1005df26
mov edi, dword [esp + edx*4 + 0x764]
mov esi, edi
shr esi, 0x1f
add edi, edi
or dword [esp + edx*4 + 0x760], esi
mov dword [esp + edx*4 + 0x764], edi
mov edx, dword [esp + 0x34]
mov edi, eax
cmp dword [edx], 0
je 0x1005df35
mov edi, dword [esp + 0x38]
cmp edi, dword [esp + 0xf0]
jb 0x1005da54
mov edi, dword [esp + 0xf0]
mov eax, edi
mov edx, dword [esp + eax*4 + 0x764]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x760]
add eax, edx
cmp eax, edx
jae 0x1005dfc2
mov edx, edi
mov edi, dword [esp + 0xec]
mov dword [esp + edx*4 + 0x760], eax
lea edx, [esp + edx*4 + 0x75c]
mov dword [esp + 0x760], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x1005df9a
dec edi
lea edx, [esp + edi*4 + 0x760]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x1005df8b
test edi, edi
je 0x1005dfa6
inc eax
mov dword [edx], eax
jmp 0x1005da54
inc dword [esp + 0x14c]
mov edi, 1
mov dword [esp + 0x764], 0x80000000
jmp 0x1005da54
mov edx, edi
mov dword [esp + edx*4 + 0x760], eax
test eax, eax
jne 0x1005da54
dec edi
cmp dword [esp + edi*4 + 0x760], 0
je 0x1005dfd3
jmp 0x1005da54
mov esi, dword [esp + 0xf0]
jmp 0x1005d9f6
mov dword [esp + 0x770], edx
xor edi, edi
mov dword [esp + 0x76c], edx
mov dword [esp + 0x768], edx
mov dword [esp + 0x764], edx
lea eax, [ebx + 0x1b]
cmp eax, 0x1a
ja 0x1005e07a
movsx ecx, word [ebx*2 + 0x1021621e]
shl ebx, 4
mov eax, dword [ebx + 0x10215efc]
mov edx, dword [ebx + 0x10215ef8]
mov ebp, dword [ebx + 0x10215ef4]
mov ebx, dword [ebx + 0x10215ef0]
mov dword [esp + 0x7a4], eax
mov dword [esp + 0x7a8], edx
mov dword [esp + 0x7ac], ebp
mov ebp, 4
mov dword [esp + 0x7b0], ebx
test ebx, ebx
jne 0x1005fa8a
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005e061
jmp 0x1005ecc5
xor eax, eax
mov dword [esp + 0x720], eax
mov dword [esp + 0x72c], eax
mov dword [esp + 0x730], eax
mov dword [esp + 0x734], eax
mov dword [esp + 0x738], eax
mov dword [esp + 0x73c], eax
mov dword [esp + 0x740], eax
mov dword [esp + 0x744], eax
mov dword [esp + 0x748], eax
mov dword [esp + 0x74c], eax
mov dword [esp + 0x750], eax
mov dword [esp + 0x754], eax
mov dword [esp + 0x758], eax
mov dword [esp + 0x75c], eax
test ebx, ebx
jl 0x1005fb98
cmp ebx, 0x37
jl 0x1005e169
mov ecx, ebx
sar ecx, 3
mov dword [esp + 0x1fc], 4
movzx edx, word [ecx*2 + 0x10216162]
lea ebp, [ecx + 1]
shr edx, 5
cmp edx, ebx
jle 0x1005e10f
mov ebp, ecx
movzx esi, word [ebp*2 + 0x10216160]
mov eax, esi
and eax, 0x1f
shr esi, 5
sub ebx, esi
movsx edx, word [eax*2 + 0x10216242]
shl eax, 4
mov dword [esp + 0xd0], edx
mov ecx, dword [eax + 0x102160cc]
mov ebp, dword [eax + 0x102160c8]
mov esi, dword [eax + 0x102160c4]
mov eax, dword [eax + 0x102160c0]
mov dword [esp + 0x7e4], ecx
mov dword [esp + 0x7e8], ebp
mov dword [esp + 0x7ec], esi
mov dword [esp + 0x7f0], eax
jmp 0x1005e174
mov dword [esp + 0x1fc], 0
cmp ebx, 0x37
je 0x1005fb4b
lea eax, [ebx - 0x1b]
mov dword [esp + 0x8c], eax
test eax, eax
jle 0x1005fb36
mov ecx, eax
mov ebp, 2
mov dword [esp + 0x24c], ebp
movsx eax, word [ecx*2 + 0x102165be]
mov edx, dword [ecx*8 + 0x102163dc]
mov ebx, dword [ecx*8 + 0x102163d8]
mov dword [esp + 0x80], eax
mov dword [esp + 0x724], edx
mov dword [esp + 0x728], ebx
test ebx, ebx
jne 0x1005fb2c
mov eax, ebp
dec eax
cmp dword [esp + eax*4 + 0x720], 0
je 0x1005e1d2
mov dword [esp + 0x24c], eax
mov ebx, 0x1b
mov eax, dword [ebx*8 + 0x102163dc]
mov ebp, 2
mov edx, dword [ebx*8 + 0x102163d8]
movsx ecx, word [ebx*2 + 0x102165be]
mov dword [esp + 0x7a4], eax
mov dword [esp + 0x7a8], edx
test edx, edx
jne 0x1005fb1b
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005e21a
cmp dword [esp + 0x8c], 0
jle 0x1005e78d
mov ebx, dword [esp + 0x24c]
mov edx, dword [esi]
mov dword [esp + 0x68], edx
lea eax, [ebx + ebp - 1]
mov dword [esp + 0x84], eax
mov eax, dword [esp + ebx*4 + 0x720]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x68]
mul dword [esp + 0x6c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov dword [esp + ebx*4 + 0x460], eax
mov dword [esp + ebx*4 + 0x464], edx
mov ebx, dword [esp + 0x24c]
dec ebx
je 0x1005e342
mov dword [esp + 0x190], ecx
mov dword [esp + 0x18c], ebp
xor ebp, ebp
mov dword [esp + 0x26c], edi
mov ecx, dword [esp + 0x84]
mov eax, dword [esi]
mov edx, dword [esp + ebx*4 + 0x720]
mov dword [esp + ecx*4 + 0x4a0], 0
mov dword [esp + 0x25c], eax
mov dword [esp + 0x260], edx
mov eax, dword [esp + 0x25c]
mul dword [esp + 0x260]
mov dword [esp + 0x264], eax
mov dword [esp + 0x268], edx
mov edx, dword [esp + 0x264]
mov eax, ebp
mov edi, dword [esp + ecx*4 + 0x460]
add edi, edx
cmp edi, edx
mov dword [esp + ecx*4 + 0x460], edi
setb al
dec ecx
add eax, dword [esp + 0x268]
mov dword [esp + ecx*4 + 0x460], eax
dec ebx
jne 0x1005e2b8
mov dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
mov eax, dword [esp + 0x84]
mov dword [esp + eax*4 + 0x4a0], 0
dec eax
js 0x1005e3eb
mov edx, dword [esp + 0x84]
shr edx, 1
je 0x1005fb11
mov eax, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
lea ebx, [esp + eax*4 + 0x45c]
mov ecx, esi
lea eax, [esp + eax*4 + 0x49c]
xor edi, edi
inc esi
mov dword [ecx + eax], edi
mov dword [ecx + ebx], edi
mov dword [ecx + eax - 4], edi
mov dword [ecx + ebx - 4], edi
add ecx, 0xfffffff8
cmp esi, edx
jb 0x1005e393
mov ecx, dword [esp + 0x190]
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x26c]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x84]
jae 0x1005e3eb
shl edx, 2
xor eax, eax
mov esi, dword [esp + 0x84]
neg edx
lea ebx, [esp + esi*4 + 0x49c]
mov dword [edx + ebx + 4], eax
lea ebx, [esp + esi*4 + 0x45c]
mov dword [edx + ebx + 4], eax
mov ebx, ebp
dec ebx
je 0x1005e4bd
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
mov eax, dword [esp + 0x24c]
mov ebp, eax
test eax, eax
je 0x1005e4a1
lea ecx, [esp + ebx*4 + 0x4a0]
lea esi, [esp + ebx*4 + 0x460]
mov eax, dword [esp + ebx*4 + 0x7a0]
mov edx, dword [esp + ebp*4 + 0x720]
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], edx
mov eax, dword [esp + 0x318]
mul dword [esp + 0x31c]
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], edx
mov edx, dword [esp + 0x320]
mov edi, dword [esi + ebp*4]
add edi, edx
mov dword [esi + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x324]
mov edx, dword [esi + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [esi + ebp*4 - 4], edx
setb al
add dword [ecx + ebp*4 - 8], eax
dec ebp
jne 0x1005e428
mov eax, dword [esp + 0x24c]
dec ebx
jne 0x1005e410
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
mov eax, dword [esp + 0x24c]
add ecx, dword [esp + 0x80]
lea edx, [ebp + eax]
mov dword [esp + 0x7c], edx
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + edx*4 + 0x460]
lea ebx, [esp + edx*4 + 0x7a0]
mov dword [esp + 0x78], ebx
mov dword [ebx], eax
cmp edx, 1
je 0x1005e5ee
mov eax, ebp
mov dword [esp + 0x88], 0
shr eax, 1
je 0x1005fb07
xor esi, esi
lea edx, [esp + ebp*4 + 0x4a0]
mov dword [esp + 0x1f8], edx
lea edx, [esp + ebp*4 + 0x7a0]
lea ebx, [esp + ebp*4 + 0x460]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
mov dword [esp + 0x18c], ebp
mov edi, esi
mov ecx, edx
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x1f8]
inc esi
mov edx, dword [edi + ebx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ebx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ecx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x1f4]
jb 0x1005e54e
mov dword [esp + 0x88], eax
lea edx, [esi + esi + 1]
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x1005e5e8
shl edx, 2
lea ebx, [esp + ebp*4 + 0x4a0]
neg edx
lea esi, [esp + ebp*4 + 0x460]
mov eax, dword [esp + 0x88]
add eax, dword [edx + ebx + 4]
lea ebx, [esp + ebp*4 + 0x7a0]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
jmp 0x1005e5ee
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
test eax, eax
jne 0x1005e610
mov edx, dword [esp + 0x7c]
dec edx
lea eax, [esp + edx*4 + 0x7a0]
cmp dword [eax], 0
je 0x1005e5f6
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], eax
mov eax, edx
lea ebp, [eax - 1]
mov eax, dword [esp + 0x7a4]
test eax, eax
jle 0x1005e6ae
add eax, eax
dec ecx
mov dword [esp + 0x7a4], eax
cmp dword [esp + 0x7c], 2
jb 0x1005e6ae
mov eax, dword [esp + 0x7c]
lea edx, [eax - 1]
shr edx, 1
je 0x1005fafd
mov dword [esp + 0x26c], edi
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x7a8]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ebx*8 + 0x7a4], esi
mov esi, dword [esp + ebx*8 + 0x7ac]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ebx*8 + 0x7a8], eax
mov dword [esp + ebx*8 + 0x7ac], esi
inc ebx
cmp ebx, edx
jb 0x1005e648
mov edi, dword [esp + 0x26c]
lea ebx, [ebx + ebx + 1]
lea eax, [ebx - 1]
cmp eax, ebp
jae 0x1005e6ae
mov edx, dword [esp + ebx*4 + 0x7a4]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ebx*4 + 0x7a0], eax
mov dword [esp + ebx*4 + 0x7a4], edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x1dc]
shr edx, 5
cmp dword [eax], 0
je 0x1005e6c5
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
jb 0x1005e77f
mov ebp, edx
mov eax, edx
mov edx, dword [esp + eax*4 + 0x7a4]
shr edx, 0x1f
mov esi, eax
lea ebx, [esi*4]
lea esi, [esp + esi*4 + 0x7a0]
mov eax, dword [esi]
add eax, edx
mov dword [esp + 8], eax
cmp eax, edx
jae 0x1005e760
mov eax, ebp
mov ebp, dword [esp + 8]
mov dword [esi], ebp
mov dword [esp + 0x7a0], 0
lea ebx, [eax*4 - 4]
lea esi, [esp + ebx + 0x7a0]
lea ebp, [eax - 1]
mov eax, dword [esi]
cmp eax, 0xffffffff
jne 0x1005e738
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x1005e722
test ebp, ebp
je 0x1005e741
inc eax
mov dword [esi], eax
jmp 0x1005e78d
mov dword [esp + 0x7a4], 0x80000000
inc ecx
mov ebp, 1
mov ebx, 4
lea esi, [esp + 0x7a4]
jmp 0x1005e78d
mov dword [esi], eax
cmp dword [esp + 8], 0
jne 0x1005e78d
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005e769
jmp 0x1005e78d
lea ebx, [ebp*4]
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esp + 0x1fc], 0
je 0x1005ecc5
mov eax, dword [esp + 0x1fc]
lea edx, [ebp + eax]
mov dword [esp + 0x60], edx
mov edx, dword [esi]
lea ebx, [ebp + eax - 1]
mov eax, dword [esp + eax*4 + 0x7e0]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mul dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + ebx*4 + 0x3e0], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + ebx*4 + 0x3e4], edx
lea ebx, [eax - 1]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x18c], ebp
xor ebp, ebp
mov dword [esp + 0x26c], edi
mov ecx, dword [esp + 0x64]
mov eax, dword [esi]
mov edx, dword [esp + ebx*4 + 0x7e0]
mov dword [esp + ecx*4 + 0x420], 0
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], edx
mov eax, dword [esp + 0x220]
mul dword [esp + 0x224]
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], edx
mov edx, dword [esp + 0x228]
mov eax, ebp
mov edi, dword [esp + ecx*4 + 0x3e0]
add edi, edx
cmp edi, edx
mov dword [esp + ecx*4 + 0x3e0], edi
setb al
dec ecx
add eax, dword [esp + 0x22c]
mov dword [esp + ecx*4 + 0x3e0], eax
dec ebx
jne 0x1005e812
mov dword [esp + 0x64], ecx
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
mov eax, dword [esp + 0x64]
mov dword [esp + eax*4 + 0x420], 0
dec eax
js 0x1005e933
mov edx, dword [esp + 0x64]
shr edx, 1
je 0x1005faf3
mov eax, dword [esp + 0x64]
xor esi, esi
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
lea ebx, [esp + eax*4 + 0x3dc]
mov ecx, esi
lea eax, [esp + eax*4 + 0x41c]
xor edi, edi
inc esi
mov dword [ecx + eax], edi
mov dword [ecx + ebx], edi
mov dword [ecx + eax - 4], edi
mov dword [ecx + ebx - 4], edi
add ecx, 0xfffffff8
cmp esi, edx
jb 0x1005e8e1
mov ecx, dword [esp + 0x190]
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x26c]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x64]
jae 0x1005e933
shl edx, 2
xor eax, eax
mov esi, dword [esp + 0x64]
neg edx
lea ebx, [esp + esi*4 + 0x41c]
mov dword [edx + ebx + 4], eax
lea ebx, [esp + esi*4 + 0x3dc]
mov dword [edx + ebx + 4], eax
mov ebx, ebp
dec ebx
je 0x1005ea05
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
mov eax, dword [esp + 0x1fc]
mov ebp, eax
test eax, eax
je 0x1005e9e9
lea esi, [esp + ebx*4 + 0x420]
lea ecx, [esp + ebx*4 + 0x3e0]
mov eax, dword [esp + ebx*4 + 0x7a0]
mov edx, dword [esp + ebp*4 + 0x7e0]
mov dword [esp + 0x308], eax
mov dword [esp + 0x30c], edx
mov eax, dword [esp + 0x308]
mul dword [esp + 0x30c]
mov dword [esp + 0x310], eax
mov dword [esp + 0x314], edx
mov edx, dword [esp + 0x310]
mov edi, dword [ecx + ebp*4]
add edi, edx
mov dword [ecx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x314]
mov edx, dword [ecx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebp*4 - 4], edx
setb al
add dword [esi + ebp*4 - 8], eax
dec ebp
jne 0x1005e970
mov eax, dword [esp + 0x1fc]
dec ebx
jne 0x1005e958
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
mov eax, dword [esp + 0x1fc]
mov edx, dword [esp + 0x60]
add ecx, dword [esp + 0xd0]
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + edx*4 + 0x3e0]
lea ebx, [esp + edx*4 + 0x7a0]
mov dword [esp + 0x48], ebx
mov dword [ebx], eax
cmp edx, 1
je 0x1005eb26
mov eax, ebp
mov dword [esp + 0x4c], 0
shr eax, 1
je 0x1005fae9
xor esi, esi
lea edx, [esp + ebp*4 + 0x420]
mov dword [esp + 0x17c], edx
lea edx, [esp + ebp*4 + 0x7a0]
lea ebx, [esp + ebp*4 + 0x3e0]
mov dword [esp + 0x178], eax
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
mov dword [esp + 0x18c], ebp
mov edi, esi
mov ecx, edx
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x17c]
inc esi
mov edx, dword [edi + ebx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ebx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ecx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x178]
jb 0x1005ea8c
mov dword [esp + 0x4c], eax
lea edx, [esi + esi + 1]
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x1005eb20
shl edx, 2
lea ebx, [esp + ebp*4 + 0x420]
neg edx
lea esi, [esp + ebp*4 + 0x3e0]
mov eax, dword [esp + 0x4c]
add eax, dword [edx + ebx + 4]
lea ebx, [esp + ebp*4 + 0x7a0]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
jmp 0x1005eb26
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
jne 0x1005eb48
mov edx, dword [esp + 0x60]
dec edx
lea eax, [esp + edx*4 + 0x7a0]
cmp dword [eax], 0
je 0x1005eb2e
mov dword [esp + 0x60], edx
mov dword [esp + 0x48], eax
mov eax, edx
lea ebp, [eax - 1]
mov eax, dword [esp + 0x7a4]
test eax, eax
jle 0x1005ebe6
add eax, eax
dec ecx
mov dword [esp + 0x7a4], eax
cmp dword [esp + 0x60], 2
jb 0x1005ebe6
mov eax, dword [esp + 0x60]
lea edx, [eax - 1]
shr edx, 1
je 0x1005fadf
mov dword [esp + 0x26c], edi
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x7a8]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ebx*8 + 0x7a4], esi
mov esi, dword [esp + ebx*8 + 0x7ac]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ebx*8 + 0x7a8], eax
mov dword [esp + ebx*8 + 0x7ac], esi
inc ebx
cmp ebx, edx
jb 0x1005eb80
mov edi, dword [esp + 0x26c]
lea ebx, [ebx + ebx + 1]
lea eax, [ebx - 1]
cmp eax, ebp
jae 0x1005ebe6
mov edx, dword [esp + ebx*4 + 0x7a4]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ebx*4 + 0x7a0], eax
mov dword [esp + ebx*4 + 0x7a4], edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x1dc]
shr edx, 5
cmp dword [eax], 0
je 0x1005ebfd
mov ebp, dword [esp + 0x60]
cmp ebp, edx
jb 0x1005ecb7
mov ebp, edx
mov eax, edx
mov edx, dword [esp + eax*4 + 0x7a4]
shr edx, 0x1f
mov esi, eax
lea ebx, [esi*4]
lea esi, [esp + esi*4 + 0x7a0]
mov eax, dword [esi]
add eax, edx
mov dword [esp + 4], eax
cmp eax, edx
jae 0x1005ec98
mov eax, ebp
mov ebp, dword [esp + 4]
mov dword [esi], ebp
mov dword [esp + 0x7a0], 0
lea ebx, [eax*4 - 4]
lea esi, [esp + ebx + 0x7a0]
lea ebp, [eax - 1]
mov eax, dword [esi]
cmp eax, 0xffffffff
jne 0x1005ec70
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x1005ec5a
test ebp, ebp
je 0x1005ec79
inc eax
mov dword [esi], eax
jmp 0x1005ecc5
mov dword [esp + 0x7a4], 0x80000000
inc ecx
mov ebp, 1
mov ebx, 4
lea esi, [esp + 0x7a4]
jmp 0x1005ecc5
mov dword [esi], eax
cmp dword [esp + 4], 0
jne 0x1005ecc5
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005eca1
jmp 0x1005ecc5
lea ebx, [ebp*4]
lea esi, [esp + ebp*4 + 0x7a0]
test edi, edi
je 0x1005f1c7
mov eax, dword [esi]
lea ebx, [edi + ebp - 1]
mov edx, dword [esp + edi*4 + 0x760]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov eax, dword [esp + 0x100]
mul dword [esp + 0x104]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
mov eax, dword [esp + 0x10c]
mov dword [esp + ebx*4 + 0x560], eax
mov eax, edi
mov edx, dword [esp + 0x108]
mov dword [esp + ebx*4 + 0x564], edx
dec eax
je 0x1005edc5
mov dword [esp + 0x18c], ebp
xor ebp, ebp
mov dword [esp + 0x190], ecx
mov ecx, eax
mov dword [esp + 0x26c], edi
mov edx, dword [esi]
mov edi, dword [esp + ecx*4 + 0x760]
mov dword [esp + ebx*4 + 0x5a0], 0
mov dword [esp + 0x288], edx
mov dword [esp + 0x28c], edi
mov eax, dword [esp + 0x288]
mul dword [esp + 0x28c]
mov dword [esp + 0x290], eax
mov dword [esp + 0x294], edx
mov edx, dword [esp + 0x290]
mov eax, ebp
mov edi, dword [esp + ebx*4 + 0x560]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0x560], edi
setb al
dec ebx
add eax, dword [esp + 0x294]
mov dword [esp + ebx*4 + 0x560], eax
dec ecx
jne 0x1005ed42
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
mov eax, ebx
mov dword [esp + ebx*4 + 0x5a0], 0
dec eax
js 0x1005ee6f
mov edx, ebx
shr edx, 1
je 0x1005faaf
xor eax, eax
lea esi, [esp + ebx*4 + 0x55c]
mov dword [esp + 0xf4], esi
lea esi, [esp + ebx*4 + 0x59c]
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
mov dword [esp + 0x26c], edi
xor edi, edi
mov ecx, eax
mov ebp, esi
mov esi, dword [esp + 0xf4]
inc eax
mov dword [ecx + ebp], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebp - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x1005ee1c
mov ebp, dword [esp + 0x18c]
lea edx, [eax + eax + 1]
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x26c]
lea eax, [edx - 1]
cmp eax, ebx
jae 0x1005ee6f
shl edx, 2
lea esi, [esp + ebx*4 + 0x59c]
neg edx
lea ebx, [esp + ebx*4 + 0x55c]
xor eax, eax
mov dword [edx + esi + 4], eax
mov dword [edx + ebx + 4], eax
mov ebx, ebp
dec ebx
je 0x1005ef35
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
mov ecx, edi
test edi, edi
je 0x1005ef20
mov dword [esp + 0x26c], edi
lea esi, [esp + ebx*4 + 0x5a0]
lea ebp, [esp + ebx*4 + 0x560]
mov eax, dword [esp + ebx*4 + 0x7a0]
mov edx, dword [esp + ecx*4 + 0x760]
mov dword [esp + 0x338], eax
mov dword [esp + 0x33c], edx
mov eax, dword [esp + 0x338]
mul dword [esp + 0x33c]
mov dword [esp + 0x340], eax
mov dword [esp + 0x344], edx
mov edx, dword [esp + 0x340]
mov edi, dword [ebp + ecx*4]
add edi, edx
mov dword [ebp + ecx*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x344]
mov edx, dword [ebp + ecx*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ebp + ecx*4 - 4], edx
setb al
add dword [esi + ecx*4 - 8], eax
dec ecx
jne 0x1005eea5
mov edi, dword [esp + 0x26c]
dec ebx
jne 0x1005ee86
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
add ecx, dword [esp + 0x14c]
lea edx, [ebp + edi]
mov ebx, dword [esp + edx*4 + 0x560]
lea eax, [esp + edx*4 + 0x7a0]
mov dword [esp + 0xf8], eax
lea ebp, [ebp + edi - 1]
mov dword [eax], ebx
cmp edx, 1
je 0x1005f070
mov esi, ebp
mov dword [esp + 0xfc], 0
shr esi, 1
je 0x1005faa5
xor ebx, ebx
lea edi, [esp + ebp*4 + 0x5a0]
mov dword [esp + 0x21c], edi
lea edi, [esp + ebp*4 + 0x7a0]
mov dword [esp + 0xa0], edi
lea eax, [esp + ebp*4 + 0x560]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x218], esi
mov dword [esp + 0x190], ecx
mov edi, ebx
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0x21c]
inc ebx
mov ecx, dword [edi + eax]
add edx, dword [edi + esi]
add ecx, edx
cmp ecx, edx
mov edx, 0
mov dword [edi + ebp], ecx
mov ecx, edx
setb cl
add ecx, dword [edi + esi - 4]
mov esi, dword [edi + eax - 4]
add esi, ecx
cmp esi, ecx
mov dword [edi + ebp - 4], esi
setb dl
add edi, 0xfffffff8
cmp ebx, dword [esp + 0x218]
jb 0x1005efca
mov dword [esp + 0xfc], edx
lea ebx, [ebx + ebx + 1]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
lea eax, [ebx - 1]
cmp eax, ebp
jae 0x1005f067
shl ebx, 2
lea esi, [esp + ebp*4 + 0x5a0]
neg ebx
lea edi, [esp + ebp*4 + 0x560]
mov eax, dword [esp + 0xfc]
add eax, dword [ebx + esi + 4]
lea esi, [esp + ebp*4 + 0x7a0]
add eax, dword [ebx + edi + 4]
mov dword [ebx + esi + 4], eax
mov ebx, dword [esp + 0xf8]
mov ebx, dword [ebx]
jmp 0x1005f070
mov eax, dword [esp + 0xf8]
mov ebx, dword [eax]
test ebx, ebx
jne 0x1005f08b
dec edx
lea eax, [esp + edx*4 + 0x7a0]
cmp dword [eax], 0
je 0x1005f074
mov dword [esp + 0xf8], eax
lea ebp, [edx - 1]
mov eax, dword [esp + 0x7a4]
test eax, eax
jle 0x1005f123
add eax, eax
dec ecx
mov dword [esp + 0x7a4], eax
cmp edx, 2
jb 0x1005f123
lea ebx, [edx - 1]
shr ebx, 1
je 0x1005fa9b
mov dword [esp + 0x190], ecx
xor esi, esi
mov eax, dword [esp + esi*8 + 0x7a8]
mov ecx, eax
shr ecx, 0x1f
add eax, eax
or dword [esp + esi*8 + 0x7a4], ecx
mov ecx, dword [esp + esi*8 + 0x7ac]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or eax, edi
mov dword [esp + esi*8 + 0x7a8], eax
mov dword [esp + esi*8 + 0x7ac], ecx
inc esi
cmp esi, ebx
jb 0x1005f0bd
mov ecx, dword [esp + 0x190]
lea esi, [esi + esi + 1]
lea eax, [esi - 1]
cmp eax, ebp
jae 0x1005f123
mov ebx, dword [esp + esi*4 + 0x7a4]
mov eax, ebx
shr eax, 0x1f
add ebx, ebx
or dword [esp + esi*4 + 0x7a0], eax
mov dword [esp + esi*4 + 0x7a4], ebx
mov eax, dword [esp + 0xf8]
mov edi, dword [esp + 0x1dc]
shr edi, 5
cmp dword [eax], 0
je 0x1005f13b
mov ebp, edx
cmp ebp, edi
jb 0x1005d1f0
mov ebp, edi
mov eax, dword [esp + edi*4 + 0x7a4]
shr eax, 0x1f
lea esi, [esp + edi*4 + 0x7a0]
mov edx, dword [esi]
lea ebx, [edi*4]
add edx, eax
cmp edx, eax
jae 0x1005f1ad
mov dword [esi], edx
lea ebx, [edi*4 - 4]
mov dword [esp + 0x7a0], 0
lea esi, [esp + ebx + 0x7a0]
mov eax, dword [esi]
lea ebp, [edi - 1]
cmp eax, 0xffffffff
jne 0x1005f1a0
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x1005f18a
test ebp, ebp
jne 0x1005d192
jmp 0x1005d1a1
mov dword [esi], edx
test edx, edx
jne 0x1005f1c7
dec ebp
lea esi, [esp + ebp*4 + 0x7a0]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x1005f1b3
mov eax, dword [esp + 0x664]
mov dword [esp + 0x1a4], eax
mov eax, dword [esi]
mov esi, ebp
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x1a4]
mul dword [esp + 0x1a8]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], edx
mov edi, dword [esp + 0x1ac]
lea eax, [esp + ebp*4 + 0x6a0]
mov dword [eax + 4], edi
mov edi, ebp
mov edx, dword [esp + 0x1b0]
mov dword [eax], edx
dec edi
je 0x1005f2be
mov dword [esp + 0x194], eax
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
xor ecx, ecx
mov eax, dword [esp + 0x664]
mov edx, dword [esp + esi*4 + 0x79c]
mov dword [esp + esi*4 + 0x6e0], 0
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2e0], edx
mov eax, dword [esp + 0x2dc]
mul dword [esp + 0x2e0]
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2e8], edx
mov edx, dword [esp + 0x2e4]
mov eax, ecx
mov ebp, dword [esp + esi*4 + 0x6a0]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x6a0], ebp
setb al
dec esi
add eax, dword [esp + 0x2e8]
mov dword [esp + esi*4 + 0x6a0], eax
dec edi
jne 0x1005f236
mov eax, dword [esp + 0x194]
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov edx, esi
mov dword [esp + esi*4 + 0x6e0], 0
dec edx
js 0x1005f39e
mov edx, esi
shr edx, 1
mov dword [esp + 0x1b8], edx
je 0x1005fad5
xor edx, edx
lea edi, [esp + esi*4 + 0x69c]
mov dword [esp + 0x1a0], edi
lea edi, [esp + esi*4 + 0x6dc]
mov dword [esp + 0x19c], edi
xor edi, edi
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], esi
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ecx
mov eax, edx
mov ecx, dword [esp + 0x19c]
mov ebp, dword [esp + 0x1a0]
mov esi, dword [esp + 0x1b8]
inc edx
mov dword [eax + ecx], edi
mov dword [eax + ebp], edi
mov dword [eax + ecx - 4], edi
mov dword [eax + ebp - 4], edi
add eax, 0xfffffff8
cmp edx, esi
jb 0x1005f336
mov eax, dword [esp + 0x194]
lea edi, [edx + edx + 1]
mov esi, dword [esp + 0x198]
mov ebp, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
lea edx, [edi - 1]
cmp edx, esi
jae 0x1005f39e
shl edi, 2
xor edx, edx
neg edi
mov dword [esp + 0x188], ebx
lea ebx, [esp + esi*4 + 0x6dc]
lea esi, [esp + esi*4 + 0x69c]
mov dword [edi + ebx + 4], edx
mov dword [edi + esi + 4], edx
mov ebx, dword [esp + 0x188]
mov esi, dword [esp + 0x1bc]
lea edi, [ebp + 1]
mov edx, dword [esp + ebx + 0x6a4]
mov dword [esp + ebx + 0x664], edx
lea esi, [ecx + esi - 0x7e]
test ebp, ebp
je 0x1005f4a1
mov edx, ebp
mov dword [esp + 0x1b4], 0
shr edx, 1
je 0x1005facb
xor ebx, ebx
lea ecx, [esp + ebp*4 + 0x6e0]
mov dword [esp + 0x2d4], ecx
lea ecx, [esp + ebp*4 + 0x660]
mov dword [esp + 0x2d8], edx
mov dword [esp + 0x180], edi
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x2c8], esi
mov edi, ebx
mov ebp, ecx
mov edx, dword [esp + 0x1b4]
mov esi, dword [esp + 0x2d4]
inc ebx
mov ecx, dword [edi + eax]
add edx, dword [edi + esi]
add ecx, edx
cmp ecx, edx
mov edx, 0
mov dword [edi + ebp], ecx
mov ecx, edx
setb cl
add ecx, dword [edi + esi - 4]
mov esi, dword [edi + eax - 4]
add esi, ecx
cmp esi, ecx
mov dword [edi + ebp - 4], esi
setb dl
add edi, 0xfffffff8
cmp ebx, dword [esp + 0x2d8]
jb 0x1005f415
mov dword [esp + 0x1b4], edx
lea ebx, [ebx + ebx + 1]
mov edi, dword [esp + 0x180]
mov ebp, dword [esp + 0x18c]
mov esi, dword [esp + 0x2c8]
lea edx, [ebx - 1]
cmp edx, ebp
jae 0x1005f4a1
shl ebx, 2
lea ecx, [esp + ebp*4 + 0x6e0]
sub eax, ebx
neg ebx
mov edx, dword [esp + 0x1b4]
add edx, dword [ebx + ecx + 4]
add edx, dword [eax + 4]
lea eax, [esp + ebp*4 + 0x660]
mov dword [ebx + eax + 4], edx
lea eax, [esp + ebp*4 + 0x664]
mov edx, dword [eax]
test edx, edx
jne 0x1005f4bc
dec edi
lea eax, [esp + edi*4 + 0x660]
mov edx, dword [eax]
test edx, edx
je 0x1005f4ae
mov ebx, dword [esp + 0x664]
test ebx, ebx
jle 0x1005fac3
add ebx, ebx
dec esi
mov dword [esp + 0x664], ebx
cmp edi, 2
jb 0x1005f563
lea ebx, [edi - 1]
shr ebx, 1
je 0x1005fab9
mov dword [esp + 0x2c8], esi
xor ebp, ebp
mov edx, dword [esp + ebp*8 + 0x668]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + ebp*8 + 0x664], ecx
mov ecx, dword [esp + ebp*8 + 0x66c]
mov esi, ecx
shr esi, 0x1f
add ecx, ecx
or edx, esi
mov dword [esp + ebp*8 + 0x668], edx
mov dword [esp + ebp*8 + 0x66c], ecx
inc ebp
cmp ebp, ebx
jb 0x1005f4f2
mov esi, dword [esp + 0x2c8]
lea edx, [ebp + ebp + 1]
lea ebx, [edi - 1]
lea ebp, [edx - 1]
cmp ebp, ebx
jae 0x1005f55f
mov ecx, dword [esp + edx*4 + 0x664]
mov ebp, ecx
shr ebp, 0x1f
add ecx, ecx
or dword [esp + edx*4 + 0x660], ebp
mov dword [esp + edx*4 + 0x664], ecx
mov edx, dword [eax]
jmp 0x1005f568
mov edx, dword [eax]
jmp 0x1005f568
mov edx, dword [eax]
lea ebx, [edi - 1]
test edx, edx
je 0x1005c474
mov ebx, edi
jmp 0x1005c474
mov ecx, eax
shr ecx, 1
je 0x1005f5aa
xor ebx, ebx
mov edx, 0x30
mov byte [ebp + ebx*2], dl
mov byte [ebp + ebx*2 + 1], dl
inc ebx
cmp ebx, ecx
jb 0x1005f584
lea ecx, [ebx + ebx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x1005bc5f
mov byte [ecx + ebp - 1], 0x30
jmp 0x1005bc5f
mov ecx, 1
jmp 0x1005f595
call fcn.101a6152
mov dword [esp + 0x10], ebp
mov dword [esp + 8], ebx
mov eax, dword [esp]
mov esi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x2cc]
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x10]
jbe 0x1005f5ef
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + edx*4 + 0x660]
mov dword [esp + 0x30], ecx
jmp 0x1005f5f7
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x10]
lea edx, [edx + 1]
cmp edx, dword [esp + 0x1c]
ja 0x1005f666
mov ecx, dword [esp + 0x1c]
sub ecx, edx
xor edx, edx
inc ecx
mov dword [esp + 0x1c], ecx
shr ecx, 1
mov dword [esp + 0xc], ecx
je 0x1005f75e
mov ebx, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x2cc], ebp
mov ebp, dword [esp + 0xc]
lea ebx, [esp + ebx*4 + 0x664]
or edx, dword [ebx + ecx*8]
or edx, dword [ebx + ecx*8 + 4]
inc ecx
cmp ecx, ebp
jb 0x1005f635
mov ebp, dword [esp + 0x2cc]
lea ecx, [ecx + ecx + 1]
lea ebx, [ecx - 1]
cmp ebx, dword [esp + 0x1c]
jae 0x1005f668
mov ebx, dword [esp + 0x10]
lea ecx, [ecx + ebx + 1]
or edx, dword [esp + ecx*4 + 0x65c]
jmp 0x1005f668
xor edx, edx
mov dword [esp + 0x1c8], esi
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov dword [esp], eax
mov ecx, dword [esp + 0x854]
lea eax, [ebx + esi - 0x7e]
mov ebx, dword [esp + 0x838]
shr ebx, 0x1c
and ebx, 0xfffffff8
mov esi, dword [esp + 8]
mov dword [ecx], eax
xor eax, eax
lea ecx, [ebx + esi*2]
mov esi, dword [esp + 0x30]
xor ebx, ebx
test esi, 0x7fffffff
setne bl
or edx, ebx
mov edx, dword [esp + 0x1c4]
setne al
shr esi, 0x1f
add ecx, esi
mov esi, dword [esp + 0x1c8]
lea ecx, [ecx + eax*4]
mov eax, dword [esp]
shr edx, cl
mov ecx, 4
and edx, 1
test edx, edx
je 0x1005f704
movsx edx, byte [edi - 1]
cmp edx, dword [esp + 0x18]
jne 0x1005f6ef
mov ebx, dword [esp + 0x18]
dec edi
movsx edx, byte [edi - 1]
cmp edx, ebx
je 0x1005f6e6
cmp edx, 0x39
je 0x1005f6f9
mov eax, 1
add edx, eax
mov byte [edi - 1], dl
cmp edi, esi
je 0x1005f768
jmp 0x1005f712
cmp dword [esp + 0x248], 0
jle 0x1005bbac
test dword [esp + 0x844], 0x80
je 0x1005f72e
cmp byte [edi - 1], 0x30
jne 0x1005f757
dec edi
cmp byte [edi - 1], 0x30
je 0x1005f725
jmp 0x1005f757
mov edx, dword [esp + 0x248]
sub edx, edi
lea ebx, [edx + esi - 1]
test ebx, ebx
jl 0x1005f757
lea eax, [ebx + 1]
cmp ebx, 0x60
jle 0x1005f79d
push eax
push 0x30
push edi
call fcn.10061620
add esp, 0xc
lea edi, [edi + ebx + 1]
xor edx, edx
jmp 0x1005be34
mov ecx, 1
jmp 0x1005f64c
mov edx, dword [esp + 0x854]
dec esi
add dword [edx], ecx
cmp dword [esp + 0x16c], 0
je 0x1005f712
mov ecx, dword [esp + 0x248]
inc ecx
mov edx, dword [esp + 0x83c]
cmp ecx, edx
jl 0x1005f791
mov ecx, edx
mov dword [esp + 0x248], ecx
jmp 0x1005f712
mov edx, eax
shr edx, 1
je 0x1005f7db
mov dword [esp + 0x2cc], ebp
xor ecx, ecx
mov ebp, edx
mov edx, 0x30
mov byte [edi + ecx*2], dl
mov byte [edi + ecx*2 + 1], dl
inc ecx
cmp ecx, ebp
jb 0x1005f7b3
mov ebp, dword [esp + 0x2cc]
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x1005f753
mov byte [ecx + edi - 1], 0x30
jmp 0x1005f753
mov ecx, 1
jmp 0x1005f7ca
mov dword [esp + 0x10], ebp
mov dword [esp + 0x30], esi
mov dword [esp + 8], ebx
mov eax, dword [esp]
mov esi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x2cc]
test ecx, ecx
je 0x1005f5cf
jmp 0x1005f5f7
mov dword [esp + 8], 0
jmp 0x1005f5f7
mov edi, ecx
mov edx, dword [esp + 0x83c]
mov esi, dword [esp + 0x244]
cmp edx, esi
jl 0x1005f82f
mov edx, esi
sar edi, 1
shr edi, 0x1e
mov esi, dword [esp + 0x14]
lea edi, [edi + esi - 0x7e]
sar edi, 2
add edi, edx
shl edx, 2
neg edx
mov dword [esp + 0x248], edi
mov dword [esp], edx
cmp ecx, edx
jge 0x1005bfe1
cmp dword [esp + 0x248], 0
jns 0x1005bfe1
mov ecx, dword [esp + 0x838]
shr ecx, 0x1c
and ecx, 0xfffffff8
add ecx, 4
mov edx, dword [esp + 0x1c4]
shr edx, cl
mov eax, dword [esp + 0x30]
add dword [esp], 4
mov dword [esp + 0x664], eax
mov dword [esp + 0x668], 0
test dl, 1
je 0x1005bbac
lea esi, [ebp + 1]
mov edi, dword [esp + 0x854]
mov edx, dword [esp]
mov byte [ebp], 0x31
mov dword [edi], edx
mov edi, esi
xor edx, edx
mov esi, ebp
jmp 0x1005be34
mov eax, dword [esp + 0x30]
mov dword [esp + 0x664], eax
mov dword [esp + 0x668], 0
jmp 0x1005bc19
cmp dword [esp + 0x140], 0
jne 0x1005f91b
cmp dword [esp + 0x13c], 0
je 0x1005f8f9
cmp dword [esp + 0x248], 0
js 0x1005f91b
cmp dword [esp + 0x184], 0
jne 0x1005f93b
mov eax, dword [esp + 0x854]
mov edx, ebp
neg edx
mov dword [eax], ebp
je 0x1005c267
jmp 0x1005c2c8
fstp st(0)
mov edx, dword [esp + 0x854]
mov dword [esp + 0x148], ebp
mov eax, ebp
mov ebp, dword [esp + 0x2cc]
mov dword [edx], eax
jmp 0x1005bbac
fstp st(0)
mov ecx, dword [esp + 0x1cc]
add ecx, 4
mov edx, dword [esp + 0x1c4]
shr edx, cl
mov dword [esp + 0x148], ebp
mov esi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x2cc]
test dl, 1
je 0x1005f97d
mov edi, eax
xor edx, edx
test edi, edi
sete dl
sub edx, edi
mov dword [esp], edx
jmp 0x1005f8a5
mov edx, dword [esp + 0x854]
mov eax, dword [esp + 0x148]
mov dword [edx], eax
jmp 0x1005bbac
mov edx, 1
jmp 0x1005c6e2
mov ebx, 8
lea esi, [esp + 0x7a8]
jmp 0x1005f1ce
mov eax, dword [esp + 0x664]
mov ebx, 8
lea esi, [esp + 0x7a8]
jmp 0x1005f1ce
mov esi, 1
jmp 0x1005d0f6
mov ebx, 1
jmp 0x1005cfff
mov eax, 1
jmp 0x1005ce26
mov ecx, 8
lea ebx, [esp + 0x7a8]
jmp 0x1005cd0e
mov ebp, edx
mov eax, ebp
neg eax
mov ecx, eax
sar ecx, 3
movzx edx, word [ecx*2 + 0x102166a0]
lea ebx, [ecx + 1]
shr edx, 5
cmp edx, eax
jl 0x1005fa13
mov ebx, ecx
movzx edx, word [ebx*2 + 0x102166a0]
mov eax, edx
and eax, 0x1f
shr edx, 5
add edx, ebp
movsx esi, word [eax*2 + 0x102167fa]
mov edi, dword [eax*8 + 0x10216624]
mov eax, dword [eax*8 + 0x10216620]
mov dword [esp + 0x124], esi
mov dword [esp + 0x7e4], edi
jmp 0x1005ccbb
mov edx, 1
jmp 0x1005d899
mov edx, 1
jmp 0x1005d771
mov edx, 1
jmp 0x1005d53c
mov edx, 1
jmp 0x1005df03
mov edx, 1
jmp 0x1005de05
mov edx, 1
jmp 0x1005dc0f
mov ebx, 0x10
lea esi, [esp + 0x7b0]
jmp 0x1005ecc5
mov esi, 1
jmp 0x1005f100
mov ebx, 1
jmp 0x1005f028
mov edx, 1
jmp 0x1005ee4b
mov edx, 1
jmp 0x1005f535
lea ebx, [edi - 1]
jmp 0x1005f568
mov ebx, 1
jmp 0x1005f473
mov edi, 1
jmp 0x1005f36c
mov ebx, 1
jmp 0x1005ebc3
mov edx, 1
jmp 0x1005eae7
mov edx, 1
jmp 0x1005e909
mov ebx, 1
jmp 0x1005e68b
mov edx, 1
jmp 0x1005e5ac
mov edx, 1
jmp 0x1005e3bb
mov ebx, 8
lea esi, [esp + 0x7a8]
jmp 0x1005e22e
mov ebx, 0x1b
jmp 0x1005e1e9
xor eax, eax
mov dword [esp + 0x728], eax
mov dword [esp + 0x724], eax
jmp 0x1005e1e9
mov eax, dword [0x102160cc]
xor ecx, ecx
mov edx, dword [0x102160c8]
lea esi, [esp + 0x7b0]
mov ebx, dword [0x102160c4]
mov ebp, dword [0x102160c0]
mov dword [esi - 0x88], ecx
mov dword [esi - 0x8c], ecx
movsx ecx, word [0x10216242]
mov dword [esi - 0xc], eax
mov dword [esi - 8], edx
mov dword [esi - 4], ebx
mov ebx, 0x10
mov dword [esi], ebp
mov ebp, 4
jmp 0x1005e78d
mov ecx, ebx
neg ecx
mov ebp, ecx
sar ebp, 3
mov dword [esp + 0x1fc], 4
movzx edx, word [ebp*2 + 0x10215fe0]
lea esi, [ebp + 1]
shr edx, 5
cmp edx, ecx
jl 0x1005fbc0
mov esi, ebp
movzx edx, word [esi*2 + 0x10215fe0]
mov eax, edx
and eax, 0x1f
shr edx, 5
add ebx, edx
movsx ecx, word [eax*2 + 0x10216226]
shl eax, 4
mov dword [esp + 0xd0], ecx
mov ebp, dword [eax + 0x10215f4c]
mov esi, dword [eax + 0x10215f48]
mov edx, dword [eax + 0x10215f44]
mov eax, dword [eax + 0x10215f40]
mov dword [esp + 0x7e4], ebp
mov dword [esp + 0x7e8], esi
mov dword [esp + 0x7ec], edx
mov dword [esp + 0x7f0], eax
jmp 0x1005e174
mov ebx, dword [esp + 0x1cc]
mov eax, 1
mov esi, dword [esp + 0x1c8]
mov edi, dword [esp + 0x1d0]
mov ebp, dword [esp + 0x2cc]
lea ecx, [ebx + edx*2 + 1]
mov edx, dword [esp + 0x1c4]
shr edx, cl
mov ecx, eax
mov dword [esp + 0x18], 0x39
and edx, 1
jmp 0x1005f6d4
mov eax, 1
mov edx, dword [esp + 0x1d4]
mov ecx, eax
mov esi, dword [esp + 0x1c8]
mov edi, dword [esp + 0x1d0]
mov ebp, dword [esp + 0x2cc]
mov dword [esp + 0x18], 0x39
jmp 0x1005f6d4
xor eax, eax
test ebx, ebx
setge al
mov dword [esp + 0x1e4], eax
jmp 0x1005ca5c
mov dword [esp + 0x168], 1
jmp 0x1005c9ca
mov edx, 1
jmp 0x1005c551
mov dword [esp + 0x668], esi
mov dword [esp + 0x664], esi
jmp 0x1005bc19