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

Disassembly:
endbr32
push esi
push edi
push ebx
push ebp
sub esp, 0x868
mov eax, dword [esp + 0x888]
mov dword [esp + 0x280], eax
xor eax, eax
mov ecx, dword [esp + 0x884]
mov edx, dword [0x10234e38]
xor edx, esp
mov dword [esp + 0x864], edx
mov ebp, dword [esp + 0x890]
mov dword [esp + 0x7e4], eax
mov dword [esp + 0x7f0], eax
mov dword [esp + 0x7f4], eax
mov dword [esp + 0x7f8], eax
mov dword [esp + 0x7fc], eax
mov dword [esp + 0x800], eax
mov dword [esp + 0x804], eax
mov dword [esp + 0x808], eax
mov dword [esp + 0x80c], eax
mov dword [esp + 0x810], eax
mov dword [esp + 0x814], eax
mov dword [esp + 0x818], eax
mov dword [esp + 0x81c], eax
mov dword [esp + 0x820], eax
mov dword [esp + 8], eax
mov dword [esp + 0x284], ecx
test ecx, ecx
jle 0x1005933e
mov edx, dword [esp + 0x88c]
mov esi, edx
shr esi, 0x16
and esi, 7
test edx, 0x80000000
jne 0x10054c81
test esi, 1
jne 0x10054c81
xor esi, esi
mov edi, dword [esp + 0x88c]
mov ebx, edi
and ebx, 0x80002000
xor ecx, ecx
mov edx, edi
cmp ebx, 0x80002000
mov ebx, ecx
sete bl
and edx, 0x80001000
cmp edx, 0x80001000
mov edx, ecx
sete dl
and edi, 0x80000800
cmp edi, 0x80000800
sete cl
shl ebx, 0xa
shl edx, 9
shl ecx, 8
or ebx, edx
or ebx, ecx
mov edx, esi
bts ebx, esi
and edx, 2
test esi, 4
je 0x10054cf3
test edx, edx
mov edx, 0xaaaa
jne 0x10054cea
mov edx, 0xfa
mov dword [esp + 0x218], edx
jmp 0x10054d1d
test edx, edx
je 0x10054d04
mov dword [esp + 0x218], 0xfa00
jmp 0x10054d1d
mov edx, 0xa8a8
test esi, 1
je 0x10054d16
mov edx, 0
mov dword [esp + 0x218], edx
fld qword [esp + 0x87c]
mov esi, dword [esp + 0x880]
mov ecx, esi
and ecx, 0x80000000
xor esi, ecx
mov edi, esi
mov edx, esi
fstp qword [esp + 0xc]
mov dword [esp + 0x10], esi
fld qword [esp + 0xc]
shr edi, 4
add edi, 0xfc010000
mov dword [esp + 4], edi
mov edi, dword [esp + 0x880]
fstp qword [esp + 0x21c]
mov dword [esp + 0x26c], esi
mov dword [esp + 0x268], esi
and edi, 0x7ff00000
jne 0x10054fbf
mov eax, dword [esp + 0xc]
or eax, esi
jne 0x10054db4
xor eax, eax
mov dword [esp + 0x7ec], eax
mov dword [esp + 0x7e8], eax
test ecx, ecx
je 0x10054da5
mov eax, dword [esp + 0x8a0]
mov dword [eax], 0xffffffff
jmp 0x10054df5
mov eax, dword [esp + 0x8a0]
mov dword [eax], 1
jmp 0x10054df5
test ecx, ecx
je 0x10054dc7
mov eax, dword [esp + 0x8a0]
mov dword [eax], 0xfffffffe
jmp 0x10054dd4
mov eax, dword [esp + 0x8a0]
mov dword [eax], 2
test dword [esp + 0x88c], 0x10000000
je 0x10054ee7
xor eax, eax
mov dword [esp + 0x7ec], eax
mov dword [esp + 0x7e8], eax
test dword [esp + 0x88c], 0x80
je 0x10054e0f
mov dword [esp + 0x280], 1
jmp 0x10054e82
test byte [esp + 0x88c], 2
je 0x10054e3f
mov eax, dword [esp + 0x280]
inc eax
mov dword [esp + 0x280], eax
cmp eax, dword [esp + 0x884]
jle 0x10054e58
mov eax, dword [esp + 0x884]
mov dword [esp + 0x284], eax
mov edx, dword [esp + 0x284]
mov esi, ebp
lea eax, [edx - 1]
mov dword [esp + 0x280], eax
test edx, edx
jne 0x10054e89
jmp 0x10054eb3
cmp dword [esp + 0x280], 0
jg 0x10054e82
mov edx, dword [esp + 0x89c]
mov edi, ebp
mov byte [ebp], 0x30
lea esi, [ebp + 1]
mov dword [edx], 1
mov edx, 6
jmp 0x1005511d
dec dword [esp + 0x280]
mov edx, dword [esp + 0x280]
lea eax, [edx + 1]
cmp edx, 0x60
jle 0x10058c61
push eax
push 0x30
push ebp
call fcn.10061620
add esp, 0xc
mov eax, dword [esp + 0x280]
lea esi, [ebp + eax + 1]
mov eax, dword [esp + 0x89c]
mov edx, 0xb
test dword [esp + 0x88c], 0x40000000
mov edi, dword [esp + 0x890]
mov dword [eax], 1
jne 0x1005511d
mov edx, 0
jmp 0x1005511d
fld qword [esp + 0x21c]
mov eax, esi
and eax, 0x7ff00000
fstp st(0)
shr eax, 0x14
mov dword [esp + 4], eax
je 0x10054f1d
mov ecx, dword [esp + 0x87c]
mov eax, ecx
shl esi, 0xb
shr eax, 0x15
shl ecx, 0xb
or esi, eax
mov dword [esp + 8], ecx
jmp 0x10054fa1
test esi, esi
je 0x10054f6a
shl esi, 0xc
mov dword [esp], 0
test esi, esi
jle 0x10054f3c
mov eax, dword [esp]
add esi, esi
inc eax
test esi, esi
jg 0x10054f32
mov dword [esp], eax
mov eax, dword [esp]
mov edi, eax
add eax, 0xc
neg edi
mov ecx, eax
neg ecx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x87c]
shr edi, cl
mov ecx, eax
or esi, edi
mov edi, dword [esp + 0x87c]
shl edi, cl
mov dword [esp + 8], edi
jmp 0x10054fa1
mov esi, dword [esp + 0x87c]
mov dword [esp + 4], 0
test esi, esi
jle 0x10054f8c
mov eax, dword [esp + 4]
add esi, esi
inc eax
test esi, esi
jg 0x10054f81
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add eax, 0x14
neg eax
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 4]
shr esi, 0xf
shl ecx, 0x10
movzx eax, si
add ecx, 0xfc010000
or ecx, eax
mov dword [esp + 4], ecx
jmp 0x100551b8
cmp edi, 0x7ff00000
jne 0x10055198
mov edx, esi
xor eax, eax
xor edx, 0x7ff00000
mov dword [esp + 0x7ec], eax
mov dword [esp + 0x7e8], eax
or edx, dword [esp + 0x87c]
jne 0x1005507d
test ecx, ecx
je 0x10055003
mov eax, dword [esp + 0x8a0]
mov dword [eax], 0xfffffffc
jmp 0x10055010
mov eax, dword [esp + 0x8a0]
mov dword [eax], 4
test ebx, 0x400
je 0x1005502e
test ebx, 0x200
je 0x10055027
mov eax, str.INFINITY
jmp 0x10055033
mov eax, str.infinity
jmp 0x10055033
mov eax, str.Infinity
mov esi, ebp
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x1005504a
mov byte [esi], al
inc esi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x1005503f
mov ebx, dword [esp + 0x89c]
mov edx, esi
mov ecx, dword [esp + 0x88c]
sub edx, ebp
and ecx, 0x40000000
shr ecx, 0x1d
mov dword [ebx], edx
mov edx, 4
shl edx, cl
mov edi, dword [esp + 0x890]
add edx, 0xfffffffc
jmp 0x1005511d
test ebx, 0x400
je 0x100550c9
test esi, 0x80000
jne 0x1005509c
shr ecx, 0x1e
mov eax, 0x10
shr eax, cl
add eax, 0xfffffff6
jmp 0x100550aa
mov eax, 0xfffffffb
test ecx, ecx
jne 0x100550aa
mov eax, 5
mov edx, dword [esp + 0x8a0]
mov dword [edx], eax
test ebx, 0x200
je 0x100550c2
mov eax, 0x1020d674
jmp 0x100550db
mov eax, 0x10215a60
jmp 0x100550db
mov eax, dword [esp + 0x8a0]
mov dword [eax], 0
mov eax, 0x10215a64
mov esi, ebp
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x100550f2
mov byte [esi], al
inc esi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x100550e7
mov ebx, dword [esp + 0x89c]
mov ecx, esi
mov edx, 0xa
test dword [esp + 0x88c], 0x40000000
mov edi, dword [esp + 0x890]
jne 0x10055119
mov edx, 0
sub ecx, ebp
mov dword [ebx], ecx
mov ebx, dword [esp + 0x894]
mov byte [esi], 0
test ebx, ebx
je 0x10055131
mov ecx, edi
sub ecx, ebp
mov dword [ebx], ecx
mov ecx, dword [esp + 0x898]
test ecx, ecx
je 0x10055142
neg ebp
add ebp, esi
mov dword [ecx], ebp
mov ecx, edi
test edi, edi
je 0x10055159
cmp ecx, esi
jae 0x10055159
movsx ebx, byte [ecx]
inc ecx
cmp ebx, 0x30
jne 0x1005515e
test ecx, ecx
jne 0x10055148
mov edx, 0xb
mov ecx, dword [esp + 0x8a4]
test ecx, ecx
je 0x1005516b
mov dword [ecx], edx
mov ecx, dword [esp + 0x864]
mov dword [esp + 0x864], 0
xor ecx, esp
cmp ecx, dword [0x10234e38]
jne 0x10058c9b
mov eax, edi
add esp, 0x868
pop ebp
pop ebx
pop edi
pop esi
ret
test ecx, ecx
je 0x100551ab
mov ecx, dword [esp + 0x8a0]
mov dword [ecx], 0xfffffffd
jmp 0x100551b8
mov ecx, dword [esp + 0x8a0]
mov dword [ecx], 3
test ebx, 0x100
je 0x1005543c
fld qword [esp + 0x21c]
and ebx, 0x200
mov ecx, ebx
mov esi, edx
xor ecx, 0x200
and esi, 0x7ff00000
shr ecx, 4
fstp st(0)
lea eax, [ecx + 0x46]
add ecx, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
shr esi, 0x14
mov dword [esp + 0x10], esi
je 0x10055219
mov esi, dword [esp + 0x87c]
or edx, 0xfff00000
mov eax, esi
shl edx, 0xb
shr eax, 0x15
shl esi, 0xb
or edx, eax
jmp 0x10055280
test edx, edx
je 0x1005524f
shl edx, 0xc
xor eax, eax
test edx, edx
jle 0x1005522d
add edx, edx
inc eax
test edx, edx
jg 0x10055226
mov esi, eax
add eax, 0xc
mov ecx, eax
neg esi
mov dword [esp + 0x10], esi
neg ecx
mov esi, dword [esp + 0x87c]
mov edi, esi
shr edi, cl
mov ecx, eax
shl esi, cl
or edx, edi
jmp 0x10055280
mov edx, dword [esp + 0x87c]
mov dword [esp + 0x10], 0
test edx, edx
jle 0x10055271
mov eax, dword [esp + 0x10]
add edx, edx
inc eax
test edx, edx
jg 0x10055266
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
xor esi, esi
add eax, 0x14
neg eax
mov dword [esp + 0x10], eax
xor eax, eax
test esi, esi
mov ecx, dword [esp + 0x10]
setne al
mov edi, dword [esp + 0x88c]
mov dword [esp + 0x7ec], esi
lea ecx, [ecx - 0x3fe]
mov dword [esp + 0x7e8], edx
mov dword [esp + 8], eax
lea esi, [eax + 1]
mov dword [esp + 0x1c], esi
and edi, 2
mov dword [esp + 0x194], edi
jne 0x100552d5
mov eax, dword [esp + 0x884]
mov dword [esp + 0x284], eax
mov dword [esp + 4], 3
jmp 0x1005533f
cmp dword [esp + 0x280], 0
jl 0x10054e62
mov eax, ecx
and eax, 3
mov esi, eax
neg esi
add esi, 4
test eax, eax
jne 0x100552f8
mov esi, 0
mov dword [esp + 4], esi
test ecx, ecx
jle 0x10058eee
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x884]
lea eax, [ecx - 0x3fb]
sar eax, 1
shr eax, 0x1e
lea edi, [eax + ecx - 0x3fb]
sar edi, 2
add edi, dword [esp + 0x280]
cmp edi, esi
jl 0x10055331
mov edi, esi
mov dword [esp + 0x284], edi
cmp dword [esp + 4], 0
je 0x1005539f
mov edx, dword [esp + 8]
mov esi, dword [esp + 4]
mov ecx, esi
neg ecx
mov dword [esp], ecx
lea edx, [esp + edx*4 + 0x7e8]
mov edi, dword [edx]
mov eax, edi
shl eax, cl
mov ecx, esi
shr edi, cl
mov dword [edx + 4], eax
mov dword [edx], edi
cmp dword [esp + 0x1c], 1
je 0x1005538f
cmp dword [esp + 8], 0
jbe 0x1005538c
mov esi, dword [edx - 4]
mov eax, esi
mov ecx, dword [esp]
shl eax, cl
mov ecx, dword [esp + 4]
or dword [edx], eax
shr esi, cl
mov eax, dword [edx + 4]
mov dword [edx - 4], esi
jmp 0x1005538f
mov eax, dword [edx + 4]
xor edx, edx
cmp edx, eax
mov edx, dword [esp + 0x7e8]
adc dword [esp + 0x1c], 0
mov ecx, 1
lea esi, [ebp + 1]
mov byte [ebp], 0x30
mov edi, esi
mov dword [esp + 0xc], ecx
cmp dword [esp + 0x284], 0
jle 0x10058ee2
mov ecx, dword [esp + 0x284]
mov dword [esp + 0x1ec], edi
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x2fc], ebp
lea eax, [ecx - 1]
mov edi, dword [esp + 0xc]
mov ecx, 8
mov ebx, eax
mov eax, edx
dec ecx
shr eax, 0x1c
mov ebp, eax
shl edx, 4
and ebp, 1
cmp eax, 0xa
jge 0x10055401
add eax, 0x30
jmp 0x10055413
cmp dword [esp + 0x1e8], 0
je 0x10055410
add eax, 0x37
jmp 0x10055413
add eax, 0x57
mov byte [esi], al
inc esi
test ebx, ebx
jle 0x10058ec0
dec ebx
test ecx, ecx
jne 0x100553e9
cmp edi, dword [esp + 0x1c]
jae 0x10058ca0
inc edi
mov ecx, 8
mov edx, dword [esp + edi*4 + 0x7e4]
jmp 0x100553e9
mov edi, dword [esp + 4]
test edi, edi
mov dword [esp + 0x7e8], eax
mov eax, 0
setl al
mov esi, dword [esp + 8]
add eax, 0x4d104d42
mov dword [esp + 0x7ec], esi
mov dword [esp + 0x16c], edi
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x16c]
imul dword [esp + 0x170]
mov dword [esp + 0x174], edx
fld qword [esp + 0x21c]
mov esi, ebx
mov edx, dword [esp + 0x880]
and esi, 0x41
shr edx, 0x1c
lea edi, [ebp + 1]
mov eax, dword [esp + 0x88c]
and edx, 0xfffffff8
and eax, 2
mov dword [esp + 0x1f0], edx
xor edx, edx
mov dword [esp + 0x194], eax
mov eax, ebx
movsx ecx, word [esp + 0x176]
and eax, 2
inc ecx
and ebx, 0x14
mov dword [esp + 0x184], ecx
mov dword [esp + 0x178], esi
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], edx
mov dword [esp + 0x1ec], edi
mov dword [esp + 0x2fc], ebp
mov esi, ecx
jmp 0x1005551a
fld qword [esp + 0x21c]
mov ebx, dword [esp + 0x1e0]
neg ebx
mov edx, dword [esp + 0x200]
lea esi, [ebx + 1]
cmp dword [esp + 0x194], 0
je 0x100555a0
cmp dword [esp + 0x280], 0
jge 0x10055549
mov edx, dword [esp + 0x280]
neg edx
mov dword [esp + 0x180], edx
mov dword [esp + 0x280], 0
mov eax, dword [esp + 0x280]
lea ecx, [eax + esi]
mov dword [esp + 0x284], ecx
cmp ecx, dword [esp + 0x884]
jle 0x10055592
sub ecx, dword [esp + 0x884]
neg ecx
mov eax, dword [esp + 0x89c]
add ecx, dword [esp + 0x180]
test edx, edx
mov ebx, dword [esp + 0x884]
mov dword [eax], esi
je 0x10055589
mov edx, ecx
mov dword [esp + 0x284], ebx
jmp 0x100555a9
cmp dword [esp + 0x284], 0
jle 0x10058f81
mov eax, dword [esp + 0x89c]
mov dword [eax], esi
mov ebx, esi
neg ebx
jne 0x10055696
mov ebp, dword [esp + 0x26c]
and ebp, 0x7ff00000
shr ebp, 0x14
je 0x100555ea
mov edi, dword [esp + 0x26c]
mov ecx, dword [esp + 0x87c]
or edi, 0xfff00000
mov eax, ecx
shl edi, 0xb
shr eax, 0x15
or edi, eax
mov eax, ecx
shl eax, 0xb
jmp 0x10055669
cmp dword [esp + 0x26c], 0
je 0x1005564e
mov edi, dword [esp + 0x26c]
shl edi, 0xc
mov dword [esp + 0x10], 0
test edi, edi
jle 0x10055619
mov eax, dword [esp + 0x10]
add edi, edi
inc eax
test edi, edi
jg 0x1005560e
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ebp, eax
add eax, 0xc
neg ebp
mov ecx, eax
neg ecx
mov dword [esp + 0x2f8], ebp
mov ebp, dword [esp + 0x87c]
shr ebp, cl
mov ecx, eax
mov eax, dword [esp + 0x87c]
or edi, ebp
shl eax, cl
mov ebp, dword [esp + 0x2f8]
jmp 0x10055669
mov edi, dword [esp + 0x87c]
xor ebp, ebp
test edi, edi
jle 0x10055662
add edi, edi
inc ebp
test edi, edi
jg 0x1005565b
add ebp, 0x14
xor eax, eax
neg ebp
test eax, eax
mov dword [esp + 0x7ec], eax
mov eax, 0
setne al
add ebp, 0xfffffc02
inc eax
mov dword [esp + 0x7e8], edi
mov dword [esp + 0x274], eax
xor eax, eax
jmp 0x10055909
cmp dword [esp + 0x284], 0xf
jge 0x100556b4
cmp ebx, 0xfffffece
jl 0x100556b4
cmp ebx, 0x132
jle 0x10055786
xor eax, eax
mov dword [esp + 0x824], eax
mov dword [esp + 0x828], eax
mov dword [esp + 0x82c], eax
mov dword [esp + 0x830], eax
mov dword [esp + 0x834], eax
mov dword [esp + 0x838], eax
mov dword [esp + 0x83c], eax
mov dword [esp + 0x840], eax
mov dword [esp + 0x844], eax
mov dword [esp + 0x848], eax
mov dword [esp + 0x84c], eax
mov dword [esp + 0x850], eax
mov dword [esp + 0x854], eax
mov dword [esp + 0x858], eax
mov dword [esp + 0x85c], eax
mov dword [esp + 0x860], eax
cmp ebx, 0xfffffeaa
jl 0x1005577d
cmp ebx, 0x159
jg 0x1005577d
mov edi, 0x80
cmp dword [esp + 0x284], 0x11
jg 0x1005574a
mov edi, 0x40
cmp edi, 0x80
setne al
mov dword [esp + 0x1fc], edi
mov dword [esp + 0x204], eax
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x200], edx
mov dword [esp + 0x184], esi
fstp st(0)
jmp 0x10055fcd
mov edi, 0x80
xor eax, eax
jmp 0x10055753
cmp ebx, 0xffffffd1
jge 0x100557ca
mov ecx, ebx
neg ecx
mov ebp, ecx
sar ebp, 3
movzx eax, word [ebp*2 + 0x10216ce0]
lea edi, [ebp + 1]
shr eax, 5
cmp eax, ecx
jl 0x100557a8
mov edi, ebp
movzx ecx, word [edi*2 + 0x10216ce0]
mov eax, ecx
shr ecx, 5
and eax, 0x1f
add ecx, ebx
fld qword [eax*8 + 0x10216c40]
fmul qword [ecx*8 + 0x10216ab8]
jmp 0x10055813
cmp ebx, 0x2f
jle 0x1005580c
mov ecx, ebx
sar ecx, 3
movzx eax, word [ecx*2 + 0x10216dc2]
lea ebp, [ecx + 1]
shr eax, 5
cmp eax, ebx
jle 0x100557e8
mov ebp, ecx
movzx eax, word [ebp*2 + 0x10216dc0]
mov edi, eax
shr eax, 5
and edi, 0x1f
neg eax
add eax, ebx
fld qword [edi*8 + 0x10216d40]
fmul qword [eax*8 + 0x10216ab8]
jmp 0x10055813
fld qword [ebx*8 + 0x10216ab8]
fmul st(1)
fstp qword [esp + 0x39c]
mov ebp, dword [esp + 0x3a0]
mov dword [esp + 8], ebp
and ebp, 0x7ff00000
mov eax, dword [esp + 0x39c]
mov dword [esp + 4], eax
shr ebp, 0x14
je 0x10055860
mov edi, dword [esp + 8]
mov ecx, eax
or edi, 0xfff00000
mov eax, ecx
shl edi, 0xb
shr eax, 0x15
shl ecx, 0xb
or edi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
jmp 0x100558d6
cmp dword [esp + 8], 0
je 0x100558b4
mov eax, dword [esp + 8]
shl eax, 0xc
mov dword [esp + 8], eax
mov dword [esp], 0
test eax, eax
jle 0x1005588e
mov ecx, dword [esp]
add eax, eax
inc ecx
test eax, eax
jg 0x10055880
mov dword [esp + 8], eax
mov dword [esp], ecx
mov ecx, dword [esp]
mov ebp, ecx
add ecx, 0xc
neg ebp
mov edi, dword [esp + 4]
mov eax, edi
mov dword [esp], ecx
neg ecx
shr eax, cl
mov ecx, dword [esp]
shl edi, cl
or dword [esp + 8], eax
mov dword [esp + 4], edi
jmp 0x100558d6
xor ebp, ebp
mov dword [esp + 8], eax
test eax, eax
jle 0x100558c9
add eax, eax
inc ebp
test eax, eax
jg 0x100558be
mov dword [esp + 8], eax
add ebp, 0x14
mov dword [esp + 4], 0
neg ebp
mov eax, dword [esp + 4]
test eax, eax
mov dword [esp + 0x7ec], eax
mov eax, 0
setne al
add ebp, 0xfffffc02
mov edi, dword [esp + 8]
inc eax
mov dword [esp + 0x7e8], edi
mov dword [esp + 0x274], eax
mov eax, 1
mov edi, 0x35
mov dword [esp + 0x204], eax
mov dword [esp + 0x1fc], edi
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x200], edx
mov dword [esp + 0x184], esi
mov eax, dword [esp + 0x274]
fstp st(0)
test ebp, ebp
jg 0x10055500
mov edi, ebp
neg edi
je 0x10055a5c
mov ecx, edi
lea esi, [eax - 1]
mov ebx, dword [esp + eax*4 + 0x7e4]
neg ecx
mov edx, ebx
shl edx, cl
mov ecx, edi
shr ebx, cl
mov dword [esp + eax*4 + 0x7e8], edx
mov dword [esp + eax*4 + 0x7e4], ebx
cmp eax, 1
je 0x10055a55
mov ecx, esi
shr ecx, 1
je 0x10059334
xor ebx, ebx
lea edx, [esp + eax*4 + 0x7e0]
mov dword [esp + 0x188], esi
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x2f4], edi
mov dword [esp + 0x274], eax
mov dword [esp + 0x2f8], ebp
mov esi, ebx
nop
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esi + edx]
mov eax, edi
mov ebp, dword [esp + 0x2f8]
mov ecx, ebp
shl eax, cl
inc ebx
or dword [esi + edx + 4], eax
mov eax, dword [esi + edx - 4]
mov ecx, dword [esp + 0x2f4]
shr edi, cl
mov ecx, ebp
mov ebp, eax
shl ebp, cl
mov ecx, dword [esp + 0x2f4]
or edi, ebp
shr eax, cl
mov dword [esi + edx], edi
mov dword [esi + edx - 4], eax
add esi, 0xfffffff8
cmp ebx, dword [esp + 0x2f0]
jb 0x100559c0
mov esi, dword [esp + 0x188]
lea ebx, [ebx + ebx + 1]
mov edi, ecx
mov eax, dword [esp + 0x274]
mov ebp, dword [esp + 0x2f8]
lea edx, [ebx - 1]
cmp edx, esi
jae 0x10055a4e
sub esi, ebx
mov ecx, ebp
mov edx, dword [esp + esi*4 + 0x7e8]
shl edx, cl
mov ecx, edi
or dword [esp + esi*4 + 0x7ec], edx
shr dword [esp + esi*4 + 0x7e8], cl
mov edx, dword [esp + eax*4 + 0x7e8]
jmp 0x10055a55
mov edx, dword [esp + eax*4 + 0x7e8]
xor ecx, ecx
cmp ecx, edx
adc eax, 0
mov ebx, dword [esp + 0x284]
cmp ebx, 0x27
mov edx, dword [esp + 0x2fc]
jle 0x10055a74
mov ebx, 0x27
mov ecx, dword [esp + 0x1ec]
mov byte [edx], 0x30
mov dword [esp + 0x1f8], ecx
cmp ebx, dword [esp + 0x200]
jle 0x10055c6b
sub ebx, dword [esp + 0x200]
je 0x10055c6b
xor edx, edx
mov dword [esp + 0x300], ebx
xor esi, esi
mov dword [esp + 0x7e4], 0
test eax, eax
je 0x10055c3a
mov ebp, dword [esp + eax*4 + 0x7e4]
mov ecx, 0
mov dword [esp + eax*4 + 0x7e4], 0
je 0x10055c2b
mov edi, eax
shr edi, 1
je 0x10059033
lea ebx, [esp + eax*4 + 0x7e4]
mov dword [esp + 0x274], eax
mov dword [esp + 0x27c], edx
mov dword [esp + 0x320], edi
mov dword [esp + 0x278], esi
mov eax, ecx
inc ecx
xor esi, esi
mov dword [esp + 0x324], ecx
lea ecx, [ebp + ebp*4]
xor edx, edx
cmp ecx, ebp
mov edi, ecx
setb dl
shr ebp, 0x1e
add ebp, edx
mov edx, dword [eax + ebx - 4]
add ebp, ebp
mov dword [esp + 0x328], edx
mov edx, dword [eax + ebx]
shr edi, 0x1f
or ebp, edi
lea edi, [ecx + ecx]
lea ecx, [edx + ecx*2]
mov dword [eax + ebx], ecx
cmp ecx, edi
mov ecx, esi
mov edi, dword [esp + 0x328]
setb cl
add ebp, ecx
xor ecx, ecx
lea edx, [edi + edi*4]
cmp edx, edi
setb cl
lea ebp, [ebp + edx*2]
shr edi, 0x1e
add edi, ecx
mov ecx, edx
add edx, edx
add edi, edi
cmp ebp, edx
mov edx, esi
mov dword [eax + ebx - 4], ebp
setb dl
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + 0x324]
add edi, edx
mov ebp, dword [eax + ebx - 8]
mov dword [eax + ebx - 8], edi
add eax, 0xfffffff8
cmp ecx, dword [esp + 0x320]
jb 0x10055b09
mov edx, dword [esp + 0x27c]
lea ecx, [ecx + ecx + 1]
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0x274]
lea ebx, [ecx - 1]
cmp ebx, eax
jae 0x10055c24
neg ecx
add ecx, eax
mov dword [esp + 0x27c], edx
mov dword [esp + 0x278], esi
lea esi, [ebp + ebp*4]
xor ebx, ebx
cmp esi, ebp
mov edx, dword [esp + ecx*4 + 0x7e8]
lea edi, [edx + esi*2]
mov edx, 0
setb bl
shr ebp, 0x1e
add ebp, ebx
lea ebx, [esi + esi]
cmp edi, ebx
mov dword [esp + ecx*4 + 0x7e8], edi
setb dl
add ebp, ebp
shr esi, 0x1f
or ebp, esi
add ebp, edx
mov dword [esp + ecx*4 + 0x7e4], ebp
mov ecx, dword [esp + eax*4 + 0x7e4]
mov edx, dword [esp + 0x27c]
mov esi, dword [esp + 0x278]
jmp 0x10055c2b
mov ecx, dword [esp + eax*4 + 0x7e4]
cmp ecx, 1
mov ebx, dword [esp + 0x7e4]
sbb eax, 0
jmp 0x10055c3c
xor ebx, ebx
mov ebp, dword [esp + 0x2fc]
lea ecx, [ebx + 0x30]
add edx, 0x35269
mov byte [esi + ebp + 1], cl
lea ecx, [esi + ebp + 2]
inc esi
cmp esi, dword [esp + 0x300]
jb 0x10055aaa
mov dword [esp + 0x1f8], ecx
jmp 0x10055c74
mov ebx, dword [esp + 0x7e4]
xor edx, edx
mov eax, ecx
add edx, 0xffff
mov edi, dword [esp + 0x1fc]
shr edx, 0x10
mov byte [eax], 0
mov ebp, dword [esp + 0x7e8]
lea eax, [edi + 0x1f]
mov esi, eax
and esi, 0xffffffe0
mov ecx, esi
sub ecx, edi
add ecx, edx
mov edi, dword [esp + 0x204]
shl edi, cl
mov dword [esp + 0x210], ebp
mov dword [esp + 0x20c], ecx
add ebp, 0x80000000
je 0x10055cd1
xor edx, edx
cmp ebp, 0x80000000
setne dl
mov dword [esp + 0x214], edx
jmp 0x10055cdc
mov dword [esp + 0x214], 0
xor edx, edx
test ebp, ebp
mov dword [esp + 0x2e8], eax
mov eax, edx
setns al
and ebx, 1
mov ecx, dword [esp + 0x1f0]
mov dword [esp + 0x208], eax
sub esi, dword [esp + 0x20c]
add eax, ecx
lea ecx, [eax + ebx*2]
mov eax, dword [esp + 0x214]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x218]
shr eax, cl
and eax, 1
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x210]
lea ecx, [edi + eax - 0x80000000]
lea eax, [edi + edi]
cmp ecx, eax
mov eax, dword [esp + 0x2e8]
setbe dl
mov dword [esp + 0x2e4], edx
cmp esi, 0x20
jb 0x10055f8b
mov edx, dword [esp + 0x210]
add edx, 0x80000001
cmp edx, 1
ja 0x100592df
mov ecx, dword [esp + 0x20c]
mov edx, ecx
shr eax, 5
shr edx, 5
sub eax, edx
mov edi, dword [esp + 0x204]
shl edi, cl
mov dword [esp + 0x2e4], edi
mov dword [esp + 0x2e0], edi
mov dword [esp + 0x18c], eax
cmp eax, 1
jle 0x10055f26
lea edx, [eax - 1]
shr edx, 1
mov dword [esp + 0x2dc], edx
je 0x10059324
xor edx, edx
lea ecx, [esp + eax*4 + 0x7e4]
mov dword [esp + 0x2d8], ecx
xor ecx, ecx
mov dword [esp + 0x168], edi
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x164], ebx
mov edi, ecx
mov esi, dword [esp + 0x2d8]
inc edx
mov dword [esp + 0x2ec], edx
xor ebx, ebx
xor eax, eax
mov edx, dword [ecx + esi]
test edx, edx
mov esi, dword [ecx + esi - 4]
setne al
add ecx, 0xfffffff8
or ebp, eax
xor eax, eax
test esi, esi
setne al
or ebp, eax
mov eax, dword [esp + 0x2e4]
add eax, edx
cmp eax, edx
mov eax, ebx
setb al
add eax, esi
cmp eax, esi
mov eax, ebx
setb al
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x2e0]
neg eax
add eax, edx
cmp eax, edx
mov edx, ebx
mov eax, dword [esp + 0x2e8]
seta dl
neg edx
add edx, esi
lea eax, [edi + eax - 2]
cmp edx, esi
mov edx, dword [esp + 0x2ec]
seta bl
add edi, 0xfffffffe
mov dword [esp + 0x2e0], ebx
cmp edx, dword [esp + 0x2dc]
jb 0x10055ddc
mov dword [esp + 0x18c], eax
lea edx, [edx + edx + 1]
mov eax, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x168]
mov dword [esp + 0x190], edx
mov edx, dword [esp + 0x190]
lea esi, [eax - 1]
lea ecx, [edx - 1]
cmp ecx, esi
jae 0x10059311
mov esi, edx
mov edx, eax
sub edx, esi
mov dword [esp + 0x168], edi
neg esi
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x164], ebx
xor ebx, ebx
mov edi, dword [esp + edx*4 + 0x7e8]
xor edx, edx
test edi, edi
lea eax, [eax + esi]
setne dl
add ecx, edi
cmp ecx, edi
mov dword [esp + 0x18c], eax
setb bl
xor ecx, ecx
mov dword [esp + 0x2e4], ebx
mov ebx, dword [esp + 0x2e0]
neg ebx
add ebx, edi
cmp ebx, edi
mov ebx, dword [esp + 0x164]
seta cl
or ebp, edx
mov edx, 0
setge dl
mov edi, dword [esp + 0x168]
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x208], edx
mov edx, dword [esp + 0x18c]
mov eax, dword [esp + 0x2e4]
mov ecx, dword [esp + edx*4 + 0x7e4]
add eax, ecx
sub ecx, dword [esp + 0x2e0]
xor eax, ecx
shr eax, 0x1f
mov dword [esp + 0x2e4], eax
test ebp, ebp
je 0x10055f61
xor eax, eax
cmp ebp, 0x80000000
setne al
jmp 0x10055f63
xor eax, eax
mov edx, dword [esp + 0x1f0]
lea ebp, [edx + ebx*2]
add ebp, dword [esp + 0x208]
lea ecx, [ebp + eax*4]
mov eax, dword [esp + 0x218]
shr eax, cl
and eax, 1
mov dword [esp + 0x1f4], eax
cmp dword [esp + 0x2e4], 0
je 0x100592df
test edi, edi
je 0x100592df
cmp dword [esp + 0x1fc], 0x80
jae 0x1005929d
mov eax, 0x40
cmp dword [esp + 0x1fc], 0x40
jb 0x10055fc6
mov eax, 0x80
mov dword [esp + 0x1fc], eax
fld qword [esp + 0x21c]
mov eax, dword [esp + 0x268]
and eax, 0x7ff00000
fstp st(0)
shr eax, 0x14
mov dword [esp + 0x1dc], eax
je 0x10056013
mov eax, dword [esp + 0x268]
mov ebx, dword [esp + 0x87c]
or eax, 0xfff00000
mov edx, ebx
shl eax, 0xb
shr edx, 0x15
shl ebx, 0xb
or eax, edx
jmp 0x10056099
cmp dword [esp + 0x268], 0
je 0x10056059
mov eax, dword [esp + 0x268]
xor edx, edx
shl eax, 0xc
test eax, eax
jle 0x10056034
add eax, eax
inc edx
test eax, eax
jg 0x1005602d
mov ebx, edx
add edx, 0xc
mov ecx, edx
neg ebx
mov dword [esp + 0x1dc], ebx
neg ecx
mov ebx, dword [esp + 0x87c]
mov ebp, ebx
shr ebp, cl
mov ecx, edx
shl ebx, cl
or eax, ebp
jmp 0x10056099
mov eax, dword [esp + 0x87c]
mov dword [esp + 0x1dc], 0
test eax, eax
jle 0x10056084
mov edx, dword [esp + 0x1dc]
add eax, eax
inc edx
test eax, eax
jg 0x10056076
mov dword [esp + 0x1dc], edx
mov edx, dword [esp + 0x1dc]
xor ebx, ebx
add edx, 0x14
neg edx
mov dword [esp + 0x1dc], edx
test ebx, ebx
mov dword [esp + 0x7e8], eax
mov eax, 0
mov dword [esp + 0x7a4], 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
mov dword [esp + 0x7e0], eax
setne al
mov dword [esp + 0x7ec], ebx
mov dword [esp + 0x1e4], eax
mov ecx, dword [esp + 0x1e0]
cmp dword [esp + 0x1fc], 0x40
lea edx, [eax + 1]
mov dword [esp + 0x1d8], edx
jne 0x10056726
mov eax, ecx
lea edx, [eax + 0x2f]
cmp edx, 0x5e
ja 0x100561a4
mov edx, dword [esp + 0x184]
xor esi, esi
mov edi, 2
mov dword [esp + 0x7ac], esi
mov dword [esp + 0x7a8], esi
lea ebx, [edx*8]
neg ebx
movsx esi, word [eax*2 + 0x102165be]
mov ecx, dword [ebx + 0x102163dc]
mov ebp, dword [ebx + 0x102163d8]
mov dword [esp + 0x828], ecx
mov dword [esp + 0x82c], ebp
test ebp, ebp
jne 0x1005903d
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x10056192
jmp 0x100587c8
cmp dword [esp + 0x1e0], 0
jl 0x10059078
mov ebx, eax
mov eax, ebx
sar eax, 3
movzx edx, word [eax*2 + 0x102167a2]
lea ecx, [eax + 1]
shr edx, 5
cmp edx, ebx
jle 0x100561cd
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 + 0x148], ebp
mov dword [esp + 0x7a8], esi
movsx ecx, word [edx*2 + 0x102165be]
mov ebp, 2
mov ebx, dword [edx*8 + 0x102163dc]
mov edx, dword [edx*8 + 0x102163d8]
mov dword [esp + 0x7ac], eax
mov dword [esp + 0x144], ecx
mov dword [esp + 0x828], ebx
mov dword [esp + 0x82c], edx
test edx, edx
jne 0x10059067
dec ebp
lea ebx, [esp + ebp*4 + 0x824]
cmp dword [ebx], 0
lea ecx, [ebp*4]
je 0x10056244
mov dword [esp + 0x138], eax
mov eax, dword [ebx]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x134]
mul dword [esp + 0x138]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edx
mov eax, dword [ebx]
mov edx, dword [esp + 0x140]
mov ebx, dword [esp + 0x13c]
mov esi, dword [esp + 0x7a8]
mov dword [esp + ebp*4 + 0x668], 0
mov dword [esp + 0x2c8], eax
mov dword [esp + ebp*4 + 0x628], edx
mov dword [esp + ebp*4 + 0x62c], ebx
mov dword [esp + 0x2cc], esi
mov eax, dword [esp + 0x2c8]
mul dword [esp + 0x2cc]
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2d4], edx
mov esi, dword [esp + 0x2d0]
xor eax, eax
mov edi, dword [esp + ebp*4 + 0x628]
mov ebx, ebp
add edi, esi
cmp edi, esi
mov dword [esp + ebp*4 + 0x664], eax
setb al
add eax, dword [esp + 0x2d4]
mov dword [esp + ebp*4 + 0x628], edi
dec ebx
mov dword [esp + ebp*4 + 0x624], eax
js 0x100563a4
mov esi, ebp
shr esi, 1
je 0x1005905d
xor edi, edi
lea edx, [esp + ecx + 0x664]
mov dword [esp + 0x2ac], ecx
lea eax, [esp + ecx + 0x624]
mov dword [esp + 0x2b0], ebx
xor ebx, ebx
mov dword [esp + 0x2b4], ebp
lea ecx, [edi*8]
inc edi
neg ecx
mov dword [edx + ecx - 4], ebx
mov dword [eax + ecx - 4], ebx
mov dword [edx + ecx - 8], ebx
mov dword [eax + ecx - 8], ebx
cmp edi, esi
jb 0x1005634b
mov ecx, dword [esp + 0x2ac]
lea eax, [edi + edi + 1]
mov ebx, dword [esp + 0x2b0]
mov ebp, dword [esp + 0x2b4]
lea edx, [eax - 1]
cmp edx, ebp
jae 0x100563a4
shl eax, 2
lea edx, [esp + ecx + 0x664]
neg eax
lea ecx, [esp + ecx + 0x624]
xor esi, esi
mov dword [eax + edx], esi
mov dword [eax + ecx], esi
test ebx, ebx
je 0x10056446
mov dword [esp + 0x2b4], ebp
mov ebp, 2
lea esi, [esp + ebx*4 + 0x664]
lea ecx, [esp + ebx*4 + 0x624]
mov eax, dword [esp + ebx*4 + 0x824]
mov edx, dword [esp + ebp*4 + 0x7a4]
mov dword [esp + 0x37c], eax
mov dword [esp + 0x380], edx
mov eax, dword [esp + 0x37c]
mul dword [esp + 0x380]
mov dword [esp + 0x384], eax
mov dword [esp + 0x388], edx
mov edx, dword [esp + 0x384]
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 + 0x388]
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 0x100563c6
dec ebx
jne 0x100563b3
mov ebp, dword [esp + 0x2b4]
mov esi, dword [esp + 0x148]
lea edx, [ebp + 2]
mov eax, dword [esp + 0x144]
lea ecx, [esp + ebp*4 + 0x82c]
mov dword [esp + 0x14c], ecx
lea edi, [ebp + 1]
add esi, eax
mov eax, dword [ecx - 0x200]
mov dword [ecx], eax
cmp edx, 1
je 0x100565b1
mov eax, edi
mov dword [esp + 0x150], 0
shr eax, 1
je 0x10059053
xor ebx, ebx
lea ecx, [esp + ebp*4 + 0x828]
mov dword [esp + 0xd8], ecx
lea ecx, [esp + ebp*4 + 0x628]
mov dword [esp + 0xd4], ecx
lea ecx, [esp + ebp*4 + 0x668]
mov dword [esp + 0x1b0], esi
mov dword [esp + 0xd0], edx
mov dword [esp + 0x2b4], ebp
mov dword [esp + 0x260], ecx
xor ecx, ecx
mov dword [esp + 0x30c], edi
mov dword [esp + 0x264], eax
mov esi, dword [esp + 0xd4]
mov ebp, dword [esp + 0xd8]
mov edx, dword [esp + 0x150]
mov edi, dword [esp + 0x260]
inc ebx
mov eax, dword [ecx + esi]
add edx, dword [ecx + edi]
add eax, edx
cmp eax, edx
mov edx, 0
mov dword [ecx + ebp], eax
mov eax, edx
setb al
add eax, dword [ecx + edi - 4]
mov edi, dword [ecx + esi - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + ebp - 4], edi
setb dl
add ecx, 0xfffffff8
cmp ebx, dword [esp + 0x264]
jb 0x100564f6
mov dword [esp + 0x150], edx
lea ecx, [ebx + ebx + 1]
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x2b4]
lea eax, [ecx - 1]
cmp eax, edi
jae 0x100565a8
shl ecx, 2
lea ebx, [esp + ebp*4 + 0x668]
neg ecx
mov eax, dword [esp + 0x150]
mov dword [esp + 0x30c], edi
lea edi, [esp + ebp*4 + 0x628]
lea ebp, [esp + ebp*4 + 0x828]
add eax, dword [ecx + ebx + 4]
add eax, dword [ecx + edi + 4]
mov dword [ecx + ebp + 4], eax
mov ecx, dword [esp + 0x14c]
mov edi, dword [esp + 0x30c]
mov eax, dword [ecx]
jmp 0x100565b1
mov eax, dword [esp + 0x14c]
mov eax, dword [eax]
test eax, eax
jne 0x100565cc
dec edx
lea eax, [esp + edx*4 + 0x824]
cmp dword [eax], 0
je 0x100565b5
mov dword [esp + 0x14c], eax
lea edi, [edx - 1]
mov ebx, dword [esp + 0x828]
test ebx, ebx
jle 0x10056675
mov eax, dword [esp + 0x148]
add ebx, ebx
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x828], ebx
lea esi, [eax + ecx - 1]
cmp edx, 2
jb 0x10056675
lea ebx, [edx - 1]
shr ebx, 1
je 0x10059049
mov dword [esp + 0xd0], edx
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x82c]
mov edx, eax
shr edx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x828], edx
mov edx, dword [esp + ecx*8 + 0x830]
mov ebp, edx
shr ebp, 0x1f
add edx, edx
or eax, ebp
mov dword [esp + ecx*8 + 0x82c], eax
mov dword [esp + ecx*8 + 0x830], edx
inc ecx
cmp ecx, ebx
jb 0x1005660f
mov edx, dword [esp + 0xd0]
lea ebx, [ecx + ecx + 1]
lea eax, [ebx - 1]
cmp eax, edi
jae 0x10056675
mov ecx, dword [esp + ebx*4 + 0x828]
mov eax, ecx
shr eax, 0x1f
add ecx, ecx
or dword [esp + ebx*4 + 0x824], eax
mov dword [esp + ebx*4 + 0x828], ecx
mov eax, dword [esp + 0x14c]
cmp dword [eax], 0
je 0x10056683
mov edi, edx
cmp edi, 2
jb 0x100587c1
mov eax, dword [esp + 0x830]
shr eax, 0x1f
mov edx, dword [esp + 0x82c]
add edx, eax
mov dword [esp + 0x82c], edx
cmp edx, eax
jae 0x10056707
mov dword [esp + 0x824], 0
mov edi, 1
cmp dword [esp + 0x828], 0xffffffff
je 0x100566cf
lea ecx, [esp + 0x828]
mov eax, dword [ecx]
jmp 0x100566e2
dec edi
lea ecx, [esp + edi*4 + 0x824]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x100566cf
test edi, edi
je 0x100566ea
inc eax
mov dword [ecx], eax
jmp 0x100587c8
mov dword [esp + 0x828], 0x80000000
inc esi
mov edi, 1
lea ecx, [esp + 0x828]
jmp 0x100587c8
mov edi, 2
test edx, edx
jne 0x1005903d
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x10056714
jmp 0x100587c8
xor eax, eax
mov dword [esp + 0x7ac], eax
mov dword [esp + 0x7a8], eax
mov dword [esp + 0x764], eax
mov dword [esp + 0x778], eax
mov dword [esp + 0x77c], eax
mov dword [esp + 0x780], eax
mov dword [esp + 0x784], eax
mov dword [esp + 0x788], eax
mov dword [esp + 0x78c], eax
mov dword [esp + 0x790], eax
mov dword [esp + 0x794], eax
mov dword [esp + 0x798], eax
mov dword [esp + 0x79c], eax
mov dword [esp + 0x7a0], eax
cmp dword [esp + 0x1e0], 0xfffffdea
jge 0x10056ebf
mov eax, dword [esp + 0x1fc]
shr eax, 5
cmp dword [esp + 0x1e0], 0xfffff000
jle 0x100567ec
xor edx, edx
mov edi, 0x1000
mov dword [esp + 0x158], ebp
xor ebx, ebx
mov dword [esp + 0x774], edx
mov esi, 3
mov dword [esp + 0x770], edx
mov dword [esp + 0x76c], edx
mov dword [esp + 0x768], edx
mov ebp, dword [esp + 0x154]
jmp 0x1005684b
mov edx, ecx
mov edi, 0x1000
mov dword [esp + 0x158], ebp
mov esi, 3
lea ecx, [edx + 0x1000]
mov edx, esi
shl edx, 4
movsx ebp, word [esi*2 + 0x1021621e]
mov ebx, dword [edx + 0x10215f0c]
mov dword [esp + 0x768], ebx
mov ebx, dword [edx + 0x10215f08]
mov dword [esp + 0x76c], ebx
mov ebx, dword [edx + 0x10215f04]
mov edx, dword [edx + 0x10215f00]
mov dword [esp + 0x770], ebx
mov ebx, 4
mov dword [esp + 0x774], edx
mov dword [esp + 0x154], ebp
lea edx, [eax - 1]
mov dword [esp + 0x15c], edx
mov dword [esp + 0x160], eax
sar edi, 1
dec esi
js 0x10056ea7
mov eax, edi
neg eax
cmp ecx, eax
jg 0x10056863
add ecx, edi
test ebx, ebx
je 0x10056eb3
mov ebp, esi
shl ebp, 4
movsx eax, word [esi*2 + 0x1021621e]
mov dword [esp + 0x158], eax
mov edx, dword [ebp + 0x10215f0c]
mov eax, dword [ebp + 0x10215f08]
mov dword [esp + 0x7a8], edx
mov dword [esp + 0x7ac], eax
mov edx, dword [ebp + 0x10215f04]
mov ebp, dword [ebp + 0x10215f00]
mov eax, dword [esp + ebx*4 + 0x764]
mov dword [esp + 0x7b0], edx
mov dword [esp + 0x7b4], ebp
mov dword [esp + 0xec], ebp
lea ebp, [ebx + 3]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
mul dword [esp + 0xec]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xf0]
mov dword [esp + ebp*4 + 0x524], eax
mov eax, 3
mov dword [esp + ebp*4 + 0x528], edx
mov dword [esp + 0x100], esi
xor esi, esi
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ecx
mov ecx, eax
mov edx, dword [esp + ebx*4 + 0x764]
mov edi, dword [esp + ecx*4 + 0x7a4]
mov dword [esp + ebp*4 + 0x564], 0
mov dword [esp + 0x29c], edx
mov dword [esp + 0x2a0], edi
mov eax, dword [esp + 0x29c]
mul dword [esp + 0x2a0]
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2a8], edx
mov edx, dword [esp + 0x2a4]
mov eax, esi
mov edi, dword [esp + ebp*4 + 0x524]
add edi, edx
cmp edi, edx
mov dword [esp + ebp*4 + 0x524], edi
setb al
dec ebp
add eax, dword [esp + 0x2a8]
mov dword [esp + ebp*4 + 0x524], eax
dec ecx
jne 0x10056934
mov eax, ebp
mov esi, dword [esp + 0x100]
dec eax
mov edi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov dword [esp + ebp*4 + 0x564], 0
js 0x10056a9c
mov eax, ebp
shr eax, 1
mov dword [esp + 0x110], eax
je 0x100590e6
xor eax, eax
lea edx, [esp + ebp*4 + 0x520]
mov dword [esp + 0xe4], edx
lea edx, [esp + ebp*4 + 0x560]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xdc], ebp
mov dword [esp + 0x100], esi
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xe4]
mov esi, dword [esp + 0x110]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebp], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebp - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x10056a34
mov ebp, dword [esp + 0xdc]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x100]
mov edi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x10056a9c
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x298], ebx
lea ebx, [esp + ebp*4 + 0x560]
lea ebp, [esp + ebp*4 + 0x520]
mov dword [edx + ebx + 4], eax
mov dword [edx + ebp + 4], eax
mov ebx, dword [esp + 0x298]
mov ebp, ebx
dec ebp
je 0x10056b70
mov dword [esp + 0x298], ebx
mov eax, 4
mov dword [esp + 0x100], esi
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ecx
mov ebx, eax
lea esi, [esp + ebp*4 + 0x564]
lea ecx, [esp + ebp*4 + 0x524]
mov eax, dword [esp + ebp*4 + 0x764]
mov edx, dword [esp + ebx*4 + 0x7a4]
mov dword [esp + 0x35c], eax
mov dword [esp + 0x360], edx
mov eax, dword [esp + 0x35c]
mul dword [esp + 0x360]
mov dword [esp + 0x364], eax
mov dword [esp + 0x368], edx
mov edx, dword [esp + 0x364]
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 + 0x368]
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 [esi + ebx*4 - 8], eax
dec ebx
jne 0x10056ad6
mov eax, 4
dec ebp
jne 0x10056ac6
mov ebx, dword [esp + 0x298]
mov esi, dword [esp + 0x100]
mov edi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov ebp, dword [esp + 0x154]
lea edx, [ebx + 4]
add ebp, dword [esp + 0x158]
lea eax, [esp + ebx*4 + 0x774]
mov dword [esp + 0x154], ebp
mov ebp, dword [eax - 0x240]
mov dword [esp + 0x108], edx
mov dword [esp + 0x104], eax
mov dword [eax], ebp
lea eax, [ebx + 3]
cmp edx, 1
je 0x10056d03
mov edx, eax
mov dword [esp + 0x10c], 0
shr edx, 1
mov dword [esp + 0x244], edx
je 0x100590dc
xor ebp, ebp
lea edx, [esp + ebx*4 + 0x770]
mov dword [esp + 0xbc], edx
lea edx, [esp + ebx*4 + 0x530]
mov dword [esp + 0xb8], edx
lea edx, [esp + ebx*4 + 0x570]
mov dword [esp + 0x298], ebx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x240], edx
mov dword [esp + 0x100], esi
mov edi, ebp
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10c]
mov esi, dword [esp + 0x240]
inc ebp
mov edx, dword [edi + ebx]
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 + ebx - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ecx - 4], esi
setb al
add edi, 0xfffffff8
cmp ebp, dword [esp + 0x244]
jb 0x10056c33
mov dword [esp + 0x10c], eax
lea edx, [ebp + ebp + 1]
mov ebx, dword [esp + 0x298]
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x100]
mov edi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
lea ebp, [edx - 1]
cmp ebp, eax
jae 0x10056cfa
shl edx, 2
lea ebp, [esp + ebx*4 + 0x570]
neg edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x100], esi
lea esi, [esp + ebx*4 + 0x530]
add eax, dword [edx + ebp + 4]
lea ebx, [esp + ebx*4 + 0x770]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x100]
mov ebp, dword [edx]
jmp 0x10056d03
mov edx, dword [esp + 0x104]
mov ebp, dword [edx]
test ebp, ebp
jne 0x10056d2e
mov edx, dword [esp + 0x108]
dec edx
lea eax, [esp + edx*4 + 0x764]
cmp dword [eax], 0
je 0x10056d0e
mov dword [esp + 0x108], edx
mov dword [esp + 0x104], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x768]
test edx, edx
jle 0x10056dea
dec dword [esp + 0x154]
add edx, edx
mov dword [esp + 0x768], edx
cmp dword [esp + 0x108], 2
jb 0x10056dea
mov edx, dword [esp + 0x108]
lea ebp, [edx - 1]
shr ebp, 1
je 0x100590d2
mov dword [esp + 0xfc], edi
xor ebx, ebx
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + ebx*8 + 0x76c]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + ebx*8 + 0x768], ecx
mov ecx, dword [esp + ebx*8 + 0x770]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or edx, edi
mov dword [esp + ebx*8 + 0x76c], edx
mov dword [esp + ebx*8 + 0x770], ecx
inc ebx
cmp ebx, ebp
jb 0x10056d7d
mov edi, dword [esp + 0xfc]
lea edx, [ebx + ebx + 1]
mov ecx, dword [esp + 0xf8]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x10056dea
mov ebp, dword [esp + edx*4 + 0x768]
mov ebx, ebp
shr ebx, 0x1f
add ebp, ebp
or dword [esp + edx*4 + 0x764], ebx
mov dword [esp + edx*4 + 0x768], ebp
mov edx, dword [esp + 0x104]
mov ebx, eax
cmp dword [edx], 0
je 0x10056dff
mov ebx, dword [esp + 0x108]
cmp ebx, dword [esp + 0x160]
jb 0x10056e9e
mov ebx, dword [esp + 0x160]
mov eax, ebx
mov edx, dword [esp + eax*4 + 0x768]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x764]
add eax, edx
cmp eax, edx
jae 0x10056e86
mov edx, ebx
mov ebx, dword [esp + 0x15c]
mov dword [esp + edx*4 + 0x764], eax
lea edx, [esp + edx*4 + 0x760]
mov dword [esp + 0x764], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x10056e64
dec ebx
lea edx, [esp + ebx*4 + 0x764]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x10056e55
test ebx, ebx
je 0x10056e6d
inc eax
mov dword [edx], eax
jmp 0x10056e9e
inc dword [esp + 0x154]
mov ebx, 1
mov dword [esp + 0x768], 0x80000000
jmp 0x10056e9e
mov edx, ebx
mov dword [esp + edx*4 + 0x764], eax
test eax, eax
jne 0x10056e9e
dec ebx
cmp dword [esp + ebx*4 + 0x764], 0
je 0x10056e93
sar edi, 1
dec esi
jns 0x1005686c
mov ebp, dword [esp + 0x158]
jmp 0x10057554
mov eax, dword [esp + 0x160]
jmp 0x10056805
cmp dword [esp + 0x1e0], 0x216
jle 0x10057536
mov eax, dword [esp + 0x1fc]
shr eax, 5
cmp dword [esp + 0x1e0], 0x1000
jge 0x10056f21
xor edx, edx
mov edi, 0x1000
mov dword [esp + 0x158], ebp
xor ebx, ebx
mov dword [esp + 0x774], edx
mov esi, 3
mov dword [esp + 0x770], edx
mov dword [esp + 0x76c], edx
mov dword [esp + 0x768], edx
mov ebp, dword [esp + 0x154]
jmp 0x10056f80
mov edx, ecx
mov edi, 0x1000
mov dword [esp + 0x158], ebp
mov esi, 3
lea ecx, [edx - 0x1000]
mov edx, esi
shl edx, 4
movsx ebp, word [esi*2 + 0x1021623a]
mov ebx, dword [edx + 0x1021608c]
mov dword [esp + 0x768], ebx
mov ebx, dword [edx + 0x10216088]
mov dword [esp + 0x76c], ebx
mov ebx, dword [edx + 0x10216084]
mov edx, dword [edx + 0x10216080]
mov dword [esp + 0x770], ebx
mov ebx, 4
mov dword [esp + 0x774], edx
mov dword [esp + 0x154], ebp
lea edx, [eax - 1]
mov dword [esp + 0x114], edx
mov dword [esp + 0x118], eax
sar edi, 1
dec esi
js 0x10056ea7
cmp ecx, edi
jl 0x10056f98
sub ecx, edi
test ebx, ebx
je 0x1005752a
mov ebp, esi
shl ebp, 4
movsx eax, word [esi*2 + 0x1021623a]
mov dword [esp + 0x158], eax
mov edx, dword [ebp + 0x1021608c]
mov eax, dword [ebp + 0x10216088]
mov dword [esp + 0x7a8], edx
mov dword [esp + 0x7ac], eax
mov edx, dword [ebp + 0x10216084]
mov ebp, dword [ebp + 0x10216080]
mov eax, dword [esp + ebx*4 + 0x764]
mov dword [esp + 0x7b0], edx
mov dword [esp + 0x7b4], ebp
mov dword [esp + 0x30], ebp
lea ebp, [ebx + 3]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + ebp*4 + 0x3a4], eax
mov eax, 3
mov dword [esp + ebp*4 + 0x3a8], edx
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0xf8], ecx
mov ecx, eax
mov edx, dword [esp + ebx*4 + 0x764]
mov edi, dword [esp + ecx*4 + 0x7a4]
mov dword [esp + ebp*4 + 0x3e4], 0
mov dword [esp + 0x230], edx
mov dword [esp + 0x234], edi
mov eax, dword [esp + 0x230]
mul dword [esp + 0x234]
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], edx
mov edx, dword [esp + 0x238]
mov eax, esi
mov edi, dword [esp + ebp*4 + 0x3a4]
add edi, edx
cmp edi, edx
mov dword [esp + ebp*4 + 0x3a4], edi
setb al
dec ebp
add eax, dword [esp + 0x23c]
mov dword [esp + ebp*4 + 0x3a4], eax
dec ecx
jne 0x10057047
mov eax, ebp
mov esi, dword [esp + 0x40]
dec eax
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf8]
mov dword [esp + ebp*4 + 0x3e4], 0
js 0x10057185
mov eax, ebp
shr eax, 1
mov dword [esp + 0x50], eax
je 0x10059104
xor eax, eax
lea edx, [esp + ebp*4 + 0x3a0]
mov dword [esp + 0x28], edx
lea edx, [esp + ebp*4 + 0x3e0]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x3c], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x50]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebp], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebp - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x10057126
mov ebp, dword [esp + 0x20]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf8]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x10057185
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x298], ebx
lea ebx, [esp + ebp*4 + 0x3e0]
lea ebp, [esp + ebp*4 + 0x3a0]
mov dword [edx + ebx + 4], eax
mov dword [edx + ebp + 4], eax
mov ebx, dword [esp + 0x298]
mov ebp, ebx
dec ebp
je 0x1005724d
mov dword [esp + 0x298], ebx
mov eax, 4
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0xf8], ecx
mov ebx, eax
lea esi, [esp + ebp*4 + 0x3e4]
lea ecx, [esp + ebp*4 + 0x3a4]
mov eax, dword [esp + ebp*4 + 0x764]
mov edx, dword [esp + ebx*4 + 0x7a4]
mov dword [esp + 0x32c], eax
mov dword [esp + 0x330], edx
mov eax, dword [esp + 0x32c]
mul dword [esp + 0x330]
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], edx
mov edx, dword [esp + 0x334]
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 + 0x338]
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 [esi + ebx*4 - 8], eax
dec ebx
jne 0x100571b9
mov eax, 4
dec ebp
jne 0x100571a9
mov ebx, dword [esp + 0x298]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf8]
mov ebp, dword [esp + 0x154]
lea edx, [ebx + 4]
add ebp, dword [esp + 0x158]
lea eax, [esp + ebx*4 + 0x774]
mov dword [esp + 0x154], ebp
mov ebp, dword [eax - 0x3c0]
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov dword [eax], ebp
lea eax, [ebx + 3]
cmp edx, 1
je 0x10057398
mov edx, eax
mov dword [esp + 0x4c], 0
shr edx, 1
mov dword [esp + 0x19c], edx
je 0x100590fa
xor ebp, ebp
lea edx, [esp + ebx*4 + 0x3b0]
mov dword [esp + 0x14], edx
lea edx, [esp + ebx*4 + 0x3f0]
mov dword [esp + 0x198], edx
lea edx, [esp + ebx*4 + 0x770]
mov dword [esp + 0x298], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x40], esi
mov edi, ebp
mov ebx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x198]
inc ebp
mov edx, dword [edi + ecx]
add eax, dword [edi + esi]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ebx], edx
mov edx, eax
setb dl
add edx, dword [edi + esi - 4]
mov esi, dword [edi + ecx - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ebx - 4], esi
setb al
add edi, 0xfffffff8
cmp ebp, dword [esp + 0x19c]
jb 0x100572e9
mov dword [esp + 0x4c], eax
lea edx, [ebp + ebp + 1]
mov ebx, dword [esp + 0x298]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf8]
lea ebp, [edx - 1]
cmp ebp, eax
jae 0x10057392
shl edx, 2
lea ebp, [esp + ebx*4 + 0x3f0]
neg edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x40], esi
lea esi, [esp + ebx*4 + 0x3b0]
add eax, dword [edx + ebp + 4]
lea ebx, [esp + ebx*4 + 0x770]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov ebp, dword [edx]
jmp 0x10057398
mov edx, dword [esp + 0x44]
mov ebp, dword [edx]
test ebp, ebp
jne 0x100573ba
mov edx, dword [esp + 0x48]
dec edx
lea eax, [esp + edx*4 + 0x764]
cmp dword [eax], 0
je 0x100573a0
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x768]
test edx, edx
jle 0x1005746a
dec dword [esp + 0x154]
add edx, edx
mov dword [esp + 0x768], edx
cmp dword [esp + 0x48], 2
jb 0x1005746a
mov edx, dword [esp + 0x48]
lea ebp, [edx - 1]
shr ebp, 1
je 0x100590f0
mov dword [esp + 0x3c], edi
xor ebx, ebx
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + ebx*8 + 0x76c]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + ebx*8 + 0x768], ecx
mov ecx, dword [esp + ebx*8 + 0x770]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or edx, edi
mov dword [esp + ebx*8 + 0x76c], edx
mov dword [esp + ebx*8 + 0x770], ecx
inc ebx
cmp ebx, ebp
jb 0x10057400
mov edi, dword [esp + 0x3c]
lea edx, [ebx + ebx + 1]
mov ecx, dword [esp + 0xf8]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x1005746a
mov ebp, dword [esp + edx*4 + 0x768]
mov ebx, ebp
shr ebx, 0x1f
add ebp, ebp
or dword [esp + edx*4 + 0x764], ebx
mov dword [esp + edx*4 + 0x768], ebp
mov edx, dword [esp + 0x44]
mov ebx, eax
cmp dword [edx], 0
je 0x10057479
mov ebx, dword [esp + 0x48]
cmp ebx, dword [esp + 0x118]
jb 0x10057518
mov ebx, dword [esp + 0x118]
mov eax, ebx
mov edx, dword [esp + eax*4 + 0x768]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x764]
add eax, edx
cmp eax, edx
jae 0x10057500
mov edx, ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + edx*4 + 0x764], eax
lea edx, [esp + edx*4 + 0x760]
mov dword [esp + 0x764], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x100574de
dec ebx
lea edx, [esp + ebx*4 + 0x764]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x100574cf
test ebx, ebx
je 0x100574e7
inc eax
mov dword [edx], eax
jmp 0x10057518
inc dword [esp + 0x154]
mov ebx, 1
mov dword [esp + 0x768], 0x80000000
jmp 0x10057518
mov edx, ebx
mov dword [esp + edx*4 + 0x764], eax
test eax, eax
jne 0x10057518
dec ebx
cmp dword [esp + ebx*4 + 0x764], 0
je 0x1005750d
sar edi, 1
dec esi
jns 0x10056fa1
mov ebp, dword [esp + 0x158]
jmp 0x10057554
mov eax, dword [esp + 0x118]
jmp 0x10056f3a
mov dword [esp + 0x774], eax
xor ebx, ebx
mov dword [esp + 0x770], eax
mov dword [esp + 0x76c], eax
mov dword [esp + 0x768], eax
lea eax, [ecx + 0x1b]
cmp eax, 0x1a
ja 0x100575ba
movsx esi, word [ecx*2 + 0x1021621e]
mov edi, 4
shl ecx, 4
mov eax, dword [ecx + 0x10215efc]
mov edx, dword [ecx + 0x10215ef8]
mov ebp, dword [ecx + 0x10215ef4]
mov ecx, dword [ecx + 0x10215ef0]
mov dword [esp + 0x828], eax
mov dword [esp + 0x82c], edx
mov dword [esp + 0x830], ebp
mov dword [esp + 0x834], ecx
test ecx, ecx
jne 0x1005910e
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x100575a8
jmp 0x100582d3
xor eax, eax
mov dword [esp + 0x724], 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
mov dword [esp + 0x760], eax
test ecx, ecx
jl 0x1005921f
cmp ecx, 0x37
jl 0x100576a2
mov edx, ecx
sar edx, 3
mov dword [esp + 0x22c], 4
movzx ebp, word [edx*2 + 0x10216162]
lea esi, [edx + 1]
shr ebp, 5
cmp ebp, ecx
jle 0x1005764f
mov esi, edx
movzx edi, word [esi*2 + 0x10216160]
mov eax, edi
and eax, 0x1f
shr edi, 5
sub ecx, edi
movsx ebp, word [eax*2 + 0x10216242]
shl eax, 4
mov edx, dword [eax + 0x102160cc]
mov esi, dword [eax + 0x102160c8]
mov edi, dword [eax + 0x102160c4]
mov eax, dword [eax + 0x102160c0]
mov dword [esp + 0x7a8], edx
mov dword [esp + 0x7ac], esi
mov dword [esp + 0x7b0], edi
mov dword [esp + 0x7b4], eax
jmp 0x100576ad
mov dword [esp + 0x22c], 0
cmp ecx, 0x37
je 0x100591c9
lea eax, [ecx - 0x1b]
mov dword [esp + 0xb4], eax
test eax, eax
jle 0x100591b4
mov ecx, eax
mov edi, 2
mov dword [esp + 0x270], edi
movsx eax, word [ecx*2 + 0x102165be]
mov edx, dword [ecx*8 + 0x102163dc]
mov esi, dword [ecx*8 + 0x102163d8]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x728], edx
mov dword [esp + 0x72c], esi
test esi, esi
jne 0x100591aa
mov eax, edi
dec eax
cmp dword [esp + eax*4 + 0x724], 0
je 0x1005770b
mov dword [esp + 0x270], eax
mov ecx, 0x1b
mov eax, dword [ecx*8 + 0x102163dc]
mov edi, 2
mov edx, dword [ecx*8 + 0x102163d8]
movsx esi, word [ecx*2 + 0x102165be]
mov dword [esp + 0x828], eax
mov dword [esp + 0x82c], edx
test edx, edx
jne 0x1005919e
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x10057753
cmp dword [esp + 0xb4], 0
jle 0x10057d72
mov eax, dword [esp + 0x270]
lea edx, [eax + edi - 1]
mov dword [esp + 0xa8], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x724]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x8c]
mul dword [esp + 0x90]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x98]
mov dword [esp + eax*4 + 0x4a4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + eax*4 + 0x4a8], edx
mov eax, dword [esp + 0x270]
dec eax
je 0x1005789f
mov dword [esp + 0x298], ebx
mov dword [esp + 0x30c], edi
mov dword [esp + 0x1b0], esi
xor esi, esi
mov dword [esp + 0x158], ebp
mov ebp, ecx
mov ebx, dword [esp + 0xa8]
mov ecx, eax
mov edx, dword [ebp]
mov edi, dword [esp + ecx*4 + 0x724]
mov dword [esp + ebx*4 + 0x4e4], 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, esi
mov edi, dword [esp + ebx*4 + 0x4a4]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0x4a4], edi
setb al
dec ebx
add eax, dword [esp + 0x294]
mov dword [esp + ebx*4 + 0x4a4], eax
dec ecx
jne 0x1005780d
mov dword [esp + 0xa8], ebx
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0xa8]
mov dword [esp + eax*4 + 0x4e4], 0
dec eax
js 0x1005798e
mov eax, dword [esp + 0xa8]
shr eax, 1
mov dword [esp + 0xb0], eax
je 0x10059194
mov ecx, dword [esp + 0xa8]
xor eax, eax
mov dword [esp + 0x298], ebx
mov dword [esp + 0x158], ebp
lea edx, [esp + ecx*4 + 0x4a0]
mov dword [esp + 0x88], edx
lea edx, [esp + ecx*4 + 0x4e0]
mov dword [esp + 0x84], edx
mov dword [esp + 0x1b0], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0xb0]
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 0x10057921
mov esi, dword [esp + 0x1b0]
lea edx, [eax + eax + 1]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xa8]
jae 0x1005798e
shl edx, 2
xor eax, eax
mov dword [esp + 0x30c], edi
neg edx
mov edi, dword [esp + 0xa8]
lea ecx, [esp + edi*4 + 0x4e0]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + edi*4 + 0x4a0]
mov dword [edx + ecx + 4], eax
mov edi, dword [esp + 0x30c]
mov ecx, edi
dec ecx
je 0x10057a6e
mov dword [esp + 0x30c], edi
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x298], ebx
mov dword [esp + 0x158], ebp
mov eax, dword [esp + 0x270]
mov ebp, eax
test eax, eax
je 0x10057a4b
lea ebx, [esp + ecx*4 + 0x4e4]
lea esi, [esp + ecx*4 + 0x4a4]
mov eax, dword [esp + ecx*4 + 0x824]
mov edx, dword [esp + ebp*4 + 0x724]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x350], edx
mov eax, dword [esp + 0x34c]
mul dword [esp + 0x350]
mov dword [esp + 0x354], eax
mov dword [esp + 0x358], edx
mov edx, dword [esp + 0x354]
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 + 0x358]
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 [ebx + ebp*4 - 8], eax
dec ebp
jne 0x100579d2
mov eax, dword [esp + 0x270]
dec ecx
jne 0x100579ba
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0x270]
add esi, dword [esp + 0xa4]
lea edx, [edi + eax]
mov dword [esp + 0xa0], edx
lea edi, [edi + eax - 1]
mov eax, dword [esp + edx*4 + 0x4a4]
lea ecx, [esp + edx*4 + 0x824]
mov dword [esp + 0x9c], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x10057bd4
mov eax, edi
mov dword [esp + 0xac], 0
shr eax, 1
je 0x1005918a
xor ecx, ecx
lea edx, [esp + edi*4 + 0x4a4]
mov dword [esp + 0x80], edx
lea edx, [esp + edi*4 + 0x4e4]
mov dword [esp + 0x228], edx
lea edx, [esp + edi*4 + 0x824]
mov dword [esp + 0x224], eax
mov dword [esp + 0x30c], edi
mov dword [esp + 0x298], ebx
mov dword [esp + 0x158], ebp
mov dword [esp + 0x1b0], esi
mov edi, ecx
mov ebp, edx
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x228]
inc ecx
mov edx, dword [edi + ebx]
add eax, dword [edi + esi]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ebp], edx
mov edx, eax
setb dl
add edx, dword [edi + esi - 4]
mov esi, dword [edi + ebx - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ebp - 4], esi
setb al
add edi, 0xfffffff8
cmp ecx, dword [esp + 0x224]
jb 0x10057b19
mov dword [esp + 0xac], eax
lea edx, [ecx + ecx + 1]
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
lea eax, [edx - 1]
cmp eax, edi
jae 0x10057bcb
shl edx, 2
lea ecx, [esp + edi*4 + 0x4e4]
neg edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1b0], esi
lea esi, [esp + edi*4 + 0x4a4]
add eax, dword [edx + ecx + 4]
lea ecx, [esp + edi*4 + 0x824]
add eax, dword [edx + esi + 4]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x1b0]
mov eax, dword [edx]
jmp 0x10057bd4
mov eax, dword [esp + 0x9c]
mov eax, dword [eax]
test eax, eax
jne 0x10057bff
mov edx, dword [esp + 0xa0]
dec edx
lea eax, [esp + edx*4 + 0x824]
cmp dword [eax], 0
je 0x10057bdf
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov eax, edx
lea edi, [eax - 1]
mov eax, dword [esp + 0x828]
test eax, eax
jle 0x10057cb5
add eax, eax
dec esi
mov dword [esp + 0x828], eax
cmp dword [esp + 0xa0], 2
jb 0x10057cb5
mov eax, dword [esp + 0xa0]
lea ecx, [eax - 1]
shr ecx, 1
je 0x10059180
mov dword [esp + 0x298], ebx
xor edx, edx
mov dword [esp + 0x158], ebp
mov eax, dword [esp + edx*8 + 0x82c]
mov ebx, eax
shr ebx, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x828], ebx
mov ebx, dword [esp + edx*8 + 0x830]
mov ebp, ebx
shr ebp, 0x1f
add ebx, ebx
or eax, ebp
mov dword [esp + edx*8 + 0x82c], eax
mov dword [esp + edx*8 + 0x830], ebx
inc edx
cmp edx, ecx
jb 0x10057c48
mov ebx, dword [esp + 0x298]
lea eax, [edx + edx + 1]
mov ebp, dword [esp + 0x158]
lea edx, [eax - 1]
cmp edx, edi
jae 0x10057cb5
mov ecx, dword [esp + eax*4 + 0x828]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x824], edx
mov dword [esp + eax*4 + 0x828], ecx
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x1fc]
shr edx, 5
cmp dword [eax], 0
je 0x10057cd2
mov edi, dword [esp + 0xa0]
cmp edi, edx
jb 0x10057d6b
mov edi, edx
mov eax, edx
mov edx, dword [esp + eax*4 + 0x828]
shr edx, 0x1f
mov ecx, eax
lea ecx, [esp + ecx*4 + 0x824]
mov eax, dword [ecx]
add eax, edx
mov dword [esp + 0xc], eax
cmp eax, edx
jae 0x10057d53
mov eax, edi
mov edi, dword [esp + 0xc]
mov dword [ecx], edi
mov dword [esp + 0x824], 0
lea ecx, [esp + eax*4 + 0x820]
lea edi, [eax - 1]
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x10057d30
dec edi
lea ecx, [esp + edi*4 + 0x824]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10057d21
test edi, edi
je 0x10057d39
inc eax
mov dword [ecx], eax
jmp 0x10057d72
mov dword [esp + 0x828], 0x80000000
inc esi
mov edi, 1
lea ecx, [esp + 0x828]
jmp 0x10057d72
mov dword [ecx], eax
cmp dword [esp + 0xc], 0
jne 0x10057d72
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x10057d5c
jmp 0x10057d72
lea ecx, [esp + edi*4 + 0x824]
cmp dword [esp + 0x22c], 0
je 0x100582d3
mov eax, dword [esp + 0x22c]
lea edx, [edi + eax]
mov dword [esp + 0x74], edx
lea edx, [edi + eax - 1]
mov dword [esp + 0x78], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x7a4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mul dword [esp + 0x68]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
mov dword [esp + eax*4 + 0x424], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + eax*4 + 0x428], edx
mov eax, dword [esp + 0x22c]
lea eax, [eax - 1]
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x30c], edi
xor edi, edi
mov dword [esp + 0x298], ebx
mov ebx, ecx
mov dword [esp + 0x158], ebp
mov ecx, eax
mov esi, dword [esp + 0x78]
mov edx, dword [ebx]
mov dword [esp + 0x250], edx
mov edx, dword [esp + ecx*4 + 0x7a4]
mov dword [esp + esi*4 + 0x464], 0
mov dword [esp + 0x254], edx
mov eax, dword [esp + 0x250]
mul dword [esp + 0x254]
mov dword [esp + 0x258], eax
mov dword [esp + 0x25c], edx
mov edx, dword [esp + 0x258]
mov eax, edi
mov ebp, dword [esp + esi*4 + 0x424]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x424], ebp
setb al
dec esi
add eax, dword [esp + 0x25c]
mov dword [esp + esi*4 + 0x424], eax
dec ecx
jne 0x10057e01
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0x78]
mov dword [esp + eax*4 + 0x464], 0
dec eax
js 0x10057f5d
mov eax, dword [esp + 0x78]
shr eax, 1
mov dword [esp + 0x7c], eax
je 0x10059176
mov ecx, dword [esp + 0x78]
xor eax, eax
mov dword [esp + 0x298], ebx
mov dword [esp + 0x158], ebp
lea edx, [esp + ecx*4 + 0x420]
mov dword [esp + 0x58], edx
lea edx, [esp + ecx*4 + 0x460]
mov dword [esp + 0x54], edx
mov dword [esp + 0x1b0], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x7c]
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 0x10057ef6
mov esi, dword [esp + 0x1b0]
lea edx, [eax + eax + 1]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x78]
jae 0x10057f5d
shl edx, 2
xor eax, eax
mov dword [esp + 0x30c], edi
neg edx
mov edi, dword [esp + 0x78]
lea ecx, [esp + edi*4 + 0x460]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + edi*4 + 0x420]
mov dword [edx + ecx + 4], eax
mov edi, dword [esp + 0x30c]
mov ecx, edi
dec ecx
je 0x1005803d
mov dword [esp + 0x30c], edi
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x298], ebx
mov dword [esp + 0x158], ebp
mov eax, dword [esp + 0x22c]
mov ebp, eax
test eax, eax
je 0x1005801a
lea ebx, [esp + ecx*4 + 0x464]
lea esi, [esp + ecx*4 + 0x424]
mov eax, dword [esp + ecx*4 + 0x824]
mov edx, dword [esp + ebp*4 + 0x7a4]
mov dword [esp + 0x33c], eax
mov dword [esp + 0x340], edx
mov eax, dword [esp + 0x33c]
mul dword [esp + 0x340]
mov dword [esp + 0x344], eax
mov dword [esp + 0x348], edx
mov edx, dword [esp + 0x344]
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 + 0x348]
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 [ebx + ebp*4 - 8], eax
dec ebp
jne 0x10057fa1
mov eax, dword [esp + 0x22c]
dec ecx
jne 0x10057f89
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0x22c]
add esi, ebp
mov edx, dword [esp + 0x74]
lea edi, [edi + eax - 1]
mov eax, dword [esp + edx*4 + 0x424]
lea ecx, [esp + edx*4 + 0x824]
mov dword [esp + 0x5c], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x1005815f
mov eax, edi
mov dword [esp + 0x60], 0
shr eax, 1
je 0x1005916c
xor ecx, ecx
lea edx, [esp + edi*4 + 0x424]
mov dword [esp + 0x1c], edx
lea ebp, [esp + edi*4 + 0x824]
lea edx, [esp + edi*4 + 0x464]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x30c], edi
mov dword [esp + 0x298], ebx
mov dword [esp + 0x1a4], edx
mov dword [esp + 0x1b0], esi
mov edi, ecx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x1a4]
inc ecx
mov edx, dword [edi + ebx]
add eax, dword [edi + esi]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ebp], edx
mov edx, eax
setb dl
add edx, dword [edi + esi - 4]
mov esi, dword [edi + ebx - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ebp - 4], esi
setb al
add edi, 0xfffffff8
cmp ecx, dword [esp + 0x1a0]
jb 0x100580c5
mov dword [esp + 0x60], eax
lea edx, [ecx + ecx + 1]
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
lea eax, [edx - 1]
cmp eax, edi
jae 0x10058159
shl edx, 2
lea ecx, [esp + edi*4 + 0x464]
neg edx
lea ebp, [esp + edi*4 + 0x424]
mov eax, dword [esp + 0x60]
add eax, dword [edx + ecx + 4]
lea ecx, [esp + edi*4 + 0x824]
add eax, dword [edx + ebp + 4]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [edx]
jmp 0x1005815f
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
test eax, eax
jne 0x10058181
mov edx, dword [esp + 0x74]
dec edx
lea eax, [esp + edx*4 + 0x824]
cmp dword [eax], 0
je 0x10058167
mov dword [esp + 0x74], edx
mov dword [esp + 0x5c], eax
mov eax, edx
lea edi, [eax - 1]
mov eax, dword [esp + 0x828]
test eax, eax
jle 0x1005821f
add eax, eax
dec esi
mov dword [esp + 0x828], eax
cmp dword [esp + 0x74], 2
jb 0x1005821f
mov eax, dword [esp + 0x74]
lea edx, [eax - 1]
shr edx, 1
je 0x10059162
mov dword [esp + 0x298], ebx
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x82c]
mov ebx, eax
shr ebx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x828], ebx
mov ebx, dword [esp + ecx*8 + 0x830]
mov ebp, ebx
shr ebp, 0x1f
add ebx, ebx
or eax, ebp
mov dword [esp + ecx*8 + 0x82c], eax
mov dword [esp + ecx*8 + 0x830], ebx
inc ecx
cmp ecx, edx
jb 0x100581b9
mov ebx, dword [esp + 0x298]
lea ecx, [ecx + ecx + 1]
lea eax, [ecx - 1]
cmp eax, edi
jae 0x1005821f
mov edx, dword [esp + ecx*4 + 0x828]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x824], eax
mov dword [esp + ecx*4 + 0x828], edx
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x1fc]
shr ebp, 5
cmp dword [eax], 0
je 0x10058236
mov edi, dword [esp + 0x74]
cmp edi, ebp
jb 0x100582cc
mov edi, ebp
mov eax, dword [esp + ebp*4 + 0x828]
shr eax, 0x1f
lea ecx, [esp + ebp*4 + 0x824]
mov edx, dword [ecx]
add edx, eax
cmp edx, eax
jae 0x100582b7
mov dword [ecx], edx
lea ecx, [esp + ebp*4 + 0x820]
mov dword [esp + 0x824], 0
lea edi, [ebp - 1]
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x10058294
mov dword [esp + 0x298], ebx
dec edi
lea ecx, [esp + edi*4 + 0x824]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x1005827e
mov ebx, dword [esp + 0x298]
test edi, edi
je 0x1005829d
inc eax
mov dword [ecx], eax
jmp 0x100582d3
mov dword [esp + 0x828], 0x80000000
inc esi
mov edi, 1
lea ecx, [esp + 0x828]
jmp 0x100582d3
mov dword [ecx], edx
test edx, edx
jne 0x100582d3
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x100582bd
jmp 0x100582d3
lea ecx, [esp + edi*4 + 0x824]
test ebx, ebx
je 0x100587c8
mov eax, dword [ecx]
lea ebp, [ebx + edi - 1]
mov edx, dword [esp + ebx*4 + 0x764]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], edx
mov eax, dword [esp + 0x124]
mul dword [esp + 0x128]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x130]
mov dword [esp + ebp*4 + 0x5a4], eax
mov eax, ebx
mov edx, dword [esp + 0x12c]
mov dword [esp + ebp*4 + 0x5a8], edx
dec eax
je 0x100583d5
mov dword [esp + 0x30c], edi
mov dword [esp + 0x1b0], esi
xor esi, esi
mov dword [esp + 0x298], ebx
mov ebx, ecx
mov ecx, eax
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x764]
mov dword [esp + ebp*4 + 0x5e4], 0
mov dword [esp + 0x2b8], edx
mov dword [esp + 0x2bc], edi
mov eax, dword [esp + 0x2b8]
mul dword [esp + 0x2bc]
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2c4], edx
mov edx, dword [esp + 0x2c0]
mov eax, esi
mov edi, dword [esp + ebp*4 + 0x5a4]
add edi, edx
cmp edi, edx
mov dword [esp + ebp*4 + 0x5a4], edi
setb al
dec ebp
add eax, dword [esp + 0x2c4]
mov dword [esp + ebp*4 + 0x5a4], eax
dec ecx
jne 0x10058352
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
mov eax, ebp
mov dword [esp + ebp*4 + 0x5e4], 0
dec eax
js 0x1005847d
mov edx, ebp
shr edx, 1
je 0x10059158
xor ecx, ecx
lea eax, [esp + ebp*4 + 0x5a0]
mov dword [esp + 0x11c], eax
lea eax, [esp + ebp*4 + 0x5e0]
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x298], ebx
mov dword [esp + 0x30c], edi
xor edi, edi
mov ebx, ecx
mov esi, dword [esp + 0x11c]
inc ecx
mov dword [ebx + eax], edi
mov dword [ebx + esi], edi
mov dword [ebx + eax - 4], edi
mov dword [ebx + esi - 4], edi
add ebx, 0xfffffff8
cmp ecx, edx
jb 0x1005842a
mov edi, dword [esp + 0x30c]
lea edx, [ecx + ecx + 1]
mov esi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x298]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x1005847d
shl edx, 2
lea ecx, [esp + ebp*4 + 0x5e0]
neg edx
lea ebp, [esp + ebp*4 + 0x5a0]
xor eax, eax
mov dword [edx + ecx + 4], eax
mov dword [edx + ebp + 4], eax
mov ecx, edi
dec ecx
je 0x10058543
mov dword [esp + 0x30c], edi
mov dword [esp + 0x1b0], esi
mov edi, ebx
test ebx, ebx
je 0x1005852e
mov dword [esp + 0x298], ebx
lea esi, [esp + ecx*4 + 0x5e4]
lea ebp, [esp + ecx*4 + 0x5a4]
mov eax, dword [esp + ecx*4 + 0x824]
mov edx, dword [esp + edi*4 + 0x764]
mov dword [esp + 0x36c], eax
mov dword [esp + 0x370], edx
mov eax, dword [esp + 0x36c]
mul dword [esp + 0x370]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edx
mov edx, dword [esp + 0x374]
mov ebx, dword [ebp + edi*4]
add ebx, edx
mov dword [ebp + edi*4], ebx
xor eax, eax
cmp ebx, edx
mov ebx, 0
setb al
add eax, dword [esp + 0x378]
mov edx, dword [ebp + edi*4 - 4]
add edx, eax
cmp edx, eax
mov eax, ebx
mov dword [ebp + edi*4 - 4], edx
setb al
add dword [esi + edi*4 - 8], eax
dec edi
jne 0x100584b3
mov ebx, dword [esp + 0x298]
dec ecx
jne 0x10058494
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
add esi, dword [esp + 0x154]
lea ecx, [edi + ebx]
mov eax, dword [esp + ecx*4 + 0x5a4]
lea edi, [edi + ebx - 1]
lea ebx, [esp + ecx*4 + 0x824]
mov dword [ebx], eax
cmp ecx, 1
je 0x10058684
mov ebp, edi
mov dword [esp + 0x120], 0
shr ebp, 1
je 0x1005914e
xor edx, edx
lea eax, [esp + edi*4 + 0x5a4]
mov dword [esp + 0xcc], eax
lea eax, [esp + edi*4 + 0x5e4]
mov dword [esp + 0x248], ebp
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x30c], edi
mov dword [esp + 0x24c], eax
lea eax, [esp + edi*4 + 0x824]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x1b0], esi
mov edi, edx
mov ebp, dword [esp + 0xcc]
mov ecx, dword [esp + 0x120]
mov esi, dword [esp + 0x24c]
inc edx
mov ebx, dword [edi + ebp]
add ecx, dword [edi + esi]
add ebx, ecx
cmp ebx, ecx
mov ecx, 0
mov dword [edi + eax], ebx
mov ebx, ecx
setb bl
add ebx, dword [edi + esi - 4]
mov esi, dword [edi + ebp - 4]
add esi, ebx
cmp esi, ebx
mov dword [edi + eax - 4], esi
setb cl
add edi, 0xfffffff8
cmp edx, dword [esp + 0x248]
jb 0x100585d7
mov dword [esp + 0x120], ecx
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
lea eax, [edx - 1]
cmp eax, edi
jae 0x10058682
shl edx, 2
lea ebp, [esp + edi*4 + 0x5a4]
neg edx
mov dword [esp + 0xc8], ecx
lea ecx, [esp + edi*4 + 0x5e4]
mov eax, dword [esp + 0x120]
add eax, dword [edx + ecx + 4]
lea ecx, [esp + edi*4 + 0x824]
add eax, dword [edx + ebp + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc8]
jmp 0x10058684
mov eax, dword [ebx]
test eax, eax
jne 0x10058698
dec ecx
lea ebx, [esp + ecx*4 + 0x824]
cmp dword [ebx], 0
je 0x10058688
lea edi, [ecx - 1]
mov eax, dword [esp + 0x828]
test eax, eax
jle 0x10058742
add eax, eax
dec esi
mov dword [esp + 0x828], eax
cmp ecx, 2
jb 0x10058742
lea edx, [ecx - 1]
shr edx, 1
je 0x10059144
mov dword [esp + 0x30c], edi
xor ebp, ebp
mov dword [esp + 0x1b0], esi
mov eax, dword [esp + ebp*8 + 0x82c]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ebp*8 + 0x828], esi
mov esi, dword [esp + ebp*8 + 0x830]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ebp*8 + 0x82c], eax
mov dword [esp + ebp*8 + 0x830], esi
inc ebp
cmp ebp, edx
jb 0x100586d5
mov edi, dword [esp + 0x30c]
lea eax, [ebp + ebp + 1]
mov esi, dword [esp + 0x1b0]
lea edx, [eax - 1]
cmp edx, edi
jae 0x10058742
mov ebp, dword [esp + eax*4 + 0x828]
mov edx, ebp
shr edx, 0x1f
add ebp, ebp
or dword [esp + eax*4 + 0x824], edx
mov dword [esp + eax*4 + 0x828], ebp
cmp dword [ebx], 0
mov ebx, dword [esp + 0x1fc]
je 0x10058750
mov edi, ecx
shr ebx, 5
cmp edi, ebx
jb 0x100587c1
mov edi, ebx
mov eax, dword [esp + ebx*4 + 0x828]
shr eax, 0x1f
lea ecx, [esp + ebx*4 + 0x824]
mov edx, dword [ecx]
add edx, eax
cmp edx, eax
jae 0x100587ac
mov dword [ecx], edx
lea ecx, [esp + ebx*4 + 0x820]
mov dword [esp + 0x824], 0
lea edi, [ebx - 1]
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x1005879f
dec edi
lea ecx, [esp + edi*4 + 0x824]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10058790
test edi, edi
jne 0x100566e2
jmp 0x100566ea
mov dword [ecx], edx
test edx, edx
jne 0x100587c8
dec edi
lea ecx, [esp + edi*4 + 0x824]
cmp dword [ecx], 0
je 0x100587b2
jmp 0x100587c8
lea ecx, [esp + edi*4 + 0x824]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x1e4]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x1c4], ebx
lea ebx, [edi + ecx + 1]
mov edx, dword [esp + eax*4 + 0x7e4]
lea ecx, [ebx - 1]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1c0], edx
mov eax, dword [esp + 0x1c0]
mul dword [esp + 0x1c4]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], edx
mov ebp, dword [esp + 0x1c8]
lea eax, [esp + ebx*4 + 0x6a0]
mov dword [eax + 4], ebp
mov ebp, edi
mov edx, dword [esp + 0x1cc]
mov dword [eax], edx
dec ebp
je 0x100588ee
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x30c], edi
mov dword [esp + 0x1b0], esi
xor esi, esi
mov ebx, dword [esp + 0x1d8]
mov eax, dword [esp + ebx*4 + 0x7e4]
mov edx, dword [esp + ebp*4 + 0x824]
mov dword [esp + ecx*4 + 0x6e4], 0
mov dword [esp + 0x310], eax
mov dword [esp + 0x314], edx
mov eax, dword [esp + 0x310]
mul dword [esp + 0x314]
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], edx
mov edx, dword [esp + 0x318]
mov eax, esi
mov edi, dword [esp + ecx*4 + 0x6a4]
add edi, edx
cmp edi, edx
mov dword [esp + ecx*4 + 0x6a4], edi
setb al
dec ecx
add eax, dword [esp + 0x31c]
mov dword [esp + ecx*4 + 0x6a4], eax
dec ebp
jne 0x1005885f
mov eax, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1b4]
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
mov edx, ecx
mov dword [esp + ecx*4 + 0x6e4], 0
dec edx
js 0x100589c2
mov edx, ecx
shr edx, 1
mov dword [esp + 0x1d4], edx
je 0x1005913a
xor edx, edx
lea ebp, [esp + ecx*4 + 0x6a0]
mov dword [esp + 0x1ac], ebp
lea ebp, [esp + ecx*4 + 0x6e0]
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x30c], edi
xor edi, edi
mov ecx, edx
mov ebx, ebp
mov ebp, dword [esp + 0x1ac]
mov esi, dword [esp + 0x1d4]
inc edx
mov dword [ecx + ebx], edi
mov dword [ecx + ebp], edi
mov dword [ecx + ebx - 4], edi
mov dword [ecx + ebp - 4], edi
add ecx, 0xfffffff8
cmp edx, esi
jb 0x1005895a
mov ecx, dword [esp + 0x1bc]
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x1b4]
mov edi, dword [esp + 0x30c]
mov esi, dword [esp + 0x1b0]
lea ebp, [edx - 1]
cmp ebp, ecx
jae 0x100589c2
shl edx, 2
lea ebp, [esp + ecx*4 + 0x6e0]
neg edx
lea ecx, [esp + ecx*4 + 0x6a0]
mov dword [esp + 0x1b8], eax
xor eax, eax
mov dword [edx + ebp + 4], eax
mov dword [edx + ecx + 4], eax
mov eax, dword [esp + 0x1b8]
cmp dword [esp + 0x1e4], 0
je 0x10058aa2
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b0], esi
mov ecx, dword [esp + 0x1e4]
mov esi, edi
test edi, edi
je 0x10058a86
mov dword [esp + 0x30c], edi
lea ebx, [esp + ecx*4 + 0x6e4]
lea ebp, [esp + ecx*4 + 0x6a4]
mov eax, dword [esp + ecx*4 + 0x7e4]
mov edx, dword [esp + esi*4 + 0x824]
mov dword [esp + 0x38c], eax
mov dword [esp + 0x390], edx
mov eax, dword [esp + 0x38c]
mul dword [esp + 0x390]
mov dword [esp + 0x394], eax
mov dword [esp + 0x398], edx
mov edx, dword [esp + 0x394]
mov edi, dword [ebp + esi*4]
add edi, edx
mov dword [ebp + esi*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x398]
mov edx, dword [ebp + esi*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ebp + esi*4 - 4], edx
setb al
add dword [ebx + esi*4 - 8], eax
dec esi
jne 0x10058a0b
mov edi, dword [esp + 0x30c]
dec ecx
jne 0x100589ec
mov eax, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1b4]
mov esi, dword [esp + 0x1b0]
mov edx, dword [esp + 0x1dc]
lea ebp, [esi + edx - 0x3fe]
mov edx, dword [esp + ebx*4 + 0x6a4]
mov dword [esp + ebx*4 + 0x7e4], edx
cmp ebx, 1
je 0x10058b9c
mov ecx, dword [esp + 0x1d0]
xor edx, edx
shr ecx, 1
je 0x10059130
xor edi, edi
lea esi, [esp + ebx*4 + 0x7e0]
mov dword [esp + 0x1a8], esi
lea esi, [esp + ebx*4 + 0x6e0]
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x308], esi
xor esi, esi
mov dword [esp + 0x304], ecx
mov dword [esp + 0x2f8], ebp
mov ebx, dword [esp + 0x1a8]
mov ebp, dword [esp + 0x308]
inc edi
mov ecx, dword [esi + eax]
add edx, dword [esi + ebp]
add ecx, edx
cmp ecx, edx
mov edx, 0
mov dword [esi + ebx], ecx
mov ecx, edx
setb cl
add ecx, dword [esi + ebp - 4]
mov ebp, dword [esi + eax - 4]
add ebp, ecx
cmp ebp, ecx
mov dword [esi + ebx - 4], ebp
setb dl
add esi, 0xfffffff8
cmp edi, dword [esp + 0x304]
jb 0x10058b14
mov ebx, dword [esp + 0x1b4]
lea esi, [edi + edi + 1]
mov ebp, dword [esp + 0x2f8]
lea edi, [esi - 1]
cmp edi, dword [esp + 0x1d0]
jae 0x10058b95
shl esi, 2
lea edi, [esp + ebx*4 + 0x6e0]
sub eax, esi
neg esi
add edx, dword [esi + edi + 4]
add edx, dword [eax + 4]
lea eax, [esp + ebx*4 + 0x7e0]
mov dword [esi + eax + 4], edx
mov edx, dword [eax + 4]
jmp 0x10058b9c
mov edx, dword [esp + ebx*4 + 0x7e4]
test edx, edx
jne 0x10059124
dec ebx
lea edx, [esp + ebx*4 + 0x7e4]
cmp dword [edx], 0
je 0x10058ba4
mov eax, dword [esp + 0x7e8]
test eax, eax
jle 0x10058c4e
add eax, eax
dec ebp
mov dword [esp + 0x7e8], eax
cmp ebx, 2
jb 0x10058c4e
lea esi, [ebx - 1]
shr esi, 1
je 0x1005911a
mov dword [esp + 0x2f8], ebp
xor edi, edi
mov eax, dword [esp + edi*8 + 0x7ec]
mov ecx, eax
shr ecx, 0x1f
add eax, eax
or dword [esp + edi*8 + 0x7e8], ecx
mov ecx, dword [esp + edi*8 + 0x7f0]
mov ebp, ecx
shr ebp, 0x1f
add ecx, ecx
or eax, ebp
mov dword [esp + edi*8 + 0x7ec], eax
mov dword [esp + edi*8 + 0x7f0], ecx
inc edi
cmp edi, esi
jb 0x10058be3
mov ebp, dword [esp + 0x2f8]
lea esi, [edi + edi + 1]
lea eax, [ebx - 1]
lea edi, [esi - 1]
cmp edi, eax
jae 0x10058c51
mov ecx, dword [esp + esi*4 + 0x7e8]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or dword [esp + esi*4 + 0x7e4], edi
mov dword [esp + esi*4 + 0x7e8], ecx
jmp 0x10058c51
lea eax, [ebx - 1]
cmp dword [edx], 0
je 0x1005593a
mov eax, ebx
jmp 0x1005593a
mov ecx, eax
shr ecx, 1
je 0x10058c94
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 0x10058c6e
lea ecx, [ebx + ebx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x10054ea8
mov byte [ecx + ebp - 1], 0x30
jmp 0x10054ea8
mov ecx, 1
jmp 0x10058c7f
call fcn.101a6152
mov dword [esp + 0xc], edi
mov dword [esp], ebp
mov edi, dword [esp + 0x1ec]
mov ebp, dword [esp + 0x2fc]
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0xc]
jbe 0x10058cd1
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + edx*4 + 0x7e4]
jmp 0x10058cd3
xor edx, edx
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + 1]
cmp ecx, dword [esp + 0x1c]
ja 0x10058d45
mov ebx, dword [esp + 0x1c]
sub ebx, ecx
xor ecx, ecx
inc ebx
mov dword [esp + 0x1c], ebx
shr ebx, 1
mov dword [esp + 8], ebx
je 0x10058e3c
mov eax, dword [esp + 0xc]
xor ebx, ebx
mov dword [esp + 0x2fc], ebp
lea eax, [esp + eax*4 + 0x7e8]
mov ebp, eax
mov eax, dword [esp + 8]
or ecx, dword [ebp + ebx*8]
or ecx, dword [ebp + ebx*8 + 4]
inc ebx
cmp ebx, eax
jb 0x10058d13
mov ebp, dword [esp + 0x2fc]
lea ebx, [ebx + ebx + 1]
lea eax, [ebx - 1]
cmp eax, dword [esp + 0x1c]
jae 0x10058d47
mov eax, dword [esp + 0xc]
lea ebx, [ebx + eax + 1]
or ecx, dword [esp + ebx*4 + 0x7e0]
jmp 0x10058d47
xor ecx, ecx
mov dword [esp + 0x1ec], edi
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x10]
lea ebx, [eax + edi - 0x3fe]
mov eax, dword [esp + 0x89c]
mov edi, dword [esp + 0x880]
shr edi, 0x1c
and edi, 0xfffffff8
test edx, 0x7fffffff
mov dword [eax], ebx
mov ebx, dword [esp]
lea edi, [edi + ebx*2]
mov ebx, 0
mov eax, ebx
setne al
or ecx, eax
setne bl
shr edx, 0x1f
add edi, edx
mov edx, dword [esp + 0x218]
lea ecx, [edi + ebx*4]
mov edi, dword [esp + 0x1ec]
shr edx, cl
mov ecx, 4
and edx, 1
test edx, edx
je 0x10058de2
movsx edx, byte [esi - 1]
cmp edx, dword [esp + 0x18]
jne 0x10058dc9
mov ebx, dword [esp + 0x18]
dec esi
movsx edx, byte [esi - 1]
cmp edx, ebx
je 0x10058dc0
cmp edx, 0x39
mov ebx, dword [esp + 0x14]
je 0x10058dd7
mov ebx, 1
add edx, ebx
mov byte [esi - 1], dl
cmp esi, edi
je 0x10058e46
jmp 0x10058df0
cmp dword [esp + 0x284], 0
jle 0x10054df5
test dword [esp + 0x88c], 0x80
je 0x10058e0c
cmp byte [esi - 1], 0x30
jne 0x10058e35
dec esi
cmp byte [esi - 1], 0x30
je 0x10058e03
jmp 0x10058e35
mov edx, dword [esp + 0x284]
sub edx, esi
lea ebx, [edx + edi - 1]
test ebx, ebx
jl 0x10058e35
lea eax, [ebx + 1]
cmp ebx, 0x60
jle 0x10058e7b
push eax
push 0x30
push esi
call fcn.10061620
add esp, 0xc
lea esi, [esi + ebx + 1]
xor edx, edx
jmp 0x1005511d
mov ebx, 1
jmp 0x10058d2b
mov edx, dword [esp + 0x89c]
dec edi
add dword [edx], ecx
cmp dword [esp + 0x194], 0
je 0x10058df0
mov ecx, dword [esp + 0x284]
inc ecx
mov edx, dword [esp + 0x884]
cmp ecx, edx
jl 0x10058e6f
mov ecx, edx
mov dword [esp + 0x284], ecx
jmp 0x10058df0
mov edx, eax
shr edx, 1
je 0x10058eb9
mov dword [esp + 0x2fc], ebp
xor ecx, ecx
mov ebp, edx
mov edx, 0x30
mov byte [esi + ecx*2], dl
mov byte [esi + ecx*2 + 1], dl
inc ecx
cmp ecx, ebp
jb 0x10058e91
mov ebp, dword [esp + 0x2fc]
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x10058e31
mov byte [ecx + esi - 1], 0x30
jmp 0x10058e31
mov ecx, 1
jmp 0x10058ea8
mov dword [esp + 0xc], edi
mov dword [esp], ebp
mov edi, dword [esp + 0x1ec]
mov ebp, dword [esp + 0x2fc]
test ecx, ecx
je 0x10058cb5
jmp 0x10058cd3
mov dword [esp], 0
jmp 0x10058cd3
mov edi, ecx
mov eax, dword [esp + 0x884]
mov esi, dword [esp + 0x280]
cmp eax, esi
jl 0x10058f04
mov eax, esi
sar edi, 1
shr edi, 0x1e
mov esi, dword [esp + 0x10]
lea edi, [edi + esi - 0x3fe]
sar edi, 2
add edi, eax
shl eax, 2
neg eax
mov dword [esp + 0x284], edi
mov dword [esp], eax
cmp ecx, eax
jge 0x10055338
cmp dword [esp + 0x284], 0
jns 0x10055338
mov ecx, dword [esp + 0x880]
shr ecx, 0x1c
and ecx, 0xfffffff8
add ecx, 4
mov eax, dword [esp + 0x218]
shr eax, cl
add dword [esp], 4
test al, 1
je 0x10054df5
lea edi, [ebp + 1]
mov esi, dword [esp + 0x89c]
mov edx, dword [esp]
mov byte [ebp], 0x31
mov dword [esi], edx
mov esi, edi
xor edx, edx
mov edi, ebp
jmp 0x1005511d
cmp dword [esp + 0x17c], 0
jne 0x10058fc1
cmp dword [esp + 0x178], 0
je 0x10058f9f
cmp dword [esp + 0x284], 0
js 0x10058fc1
cmp dword [esp + 0x1e8], 0
jne 0x10058fe1
mov eax, dword [esp + 0x89c]
mov ebx, esi
neg ebx
mov dword [eax], esi
je 0x100555b3
jmp 0x100556a0
fstp st(0)
mov edx, dword [esp + 0x89c]
mov dword [esp + 0x184], esi
mov eax, esi
mov ebp, dword [esp + 0x2fc]
mov dword [edx], eax
jmp 0x10054df5
fstp st(0)
mov ecx, dword [esp + 0x1f0]
add ecx, 4
mov edx, dword [esp + 0x218]
shr edx, cl
mov edi, dword [esp + 0x1ec]
mov ebp, dword [esp + 0x2fc]
mov dword [esp + 0x184], esi
test dl, 1
je 0x10059023
mov esi, eax
xor edx, edx
test esi, esi
sete dl
sub edx, esi
mov dword [esp], edx
jmp 0x10058f66
mov edx, dword [esp + 0x89c]
mov eax, esi
mov dword [edx], eax
jmp 0x10054df5
mov ecx, 1
jmp 0x10055bb6
lea ecx, [esp + 0x82c]
jmp 0x100587c8
mov ebx, 1
jmp 0x10056652
mov ecx, 1
jmp 0x1005655b
mov eax, 1
jmp 0x10056382
mov ecx, 8
lea ebx, [esp + 0x82c]
jmp 0x10056258
mov ebp, eax
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 0x10059097
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 + 0x148], esi
mov dword [esp + 0x7a8], edi
jmp 0x10056205
mov edx, 1
jmp 0x10056dc7
mov edx, 1
jmp 0x10056c9f
mov edx, 1
jmp 0x10056a6a
mov edx, 1
jmp 0x10057447
mov edx, 1
jmp 0x10057349
mov edx, 1
jmp 0x10057153
lea ecx, [esp + 0x834]
jmp 0x100582d3
mov esi, 1
jmp 0x10058c26
lea edx, [esp + ebx*4 + 0x7e4]
jmp 0x10058bb1
mov esi, 1
jmp 0x10058b64
mov edx, 1
jmp 0x10058990
mov eax, 1
jmp 0x1005871f
mov edx, 1
jmp 0x1005863c
mov edx, 1
jmp 0x10058459
mov ecx, 1
jmp 0x100581fc
mov edx, 1
jmp 0x10058120
mov edx, 1
jmp 0x10057f25
mov eax, 1
jmp 0x10057c92
mov edx, 1
jmp 0x10057b7e
mov edx, 1
jmp 0x10057950
lea ecx, [esp + 0x82c]
jmp 0x10057760
mov ecx, 0x1b
jmp 0x10057722
xor eax, eax
mov dword [esp + 0x72c], eax
mov dword [esp + 0x728], eax
jmp 0x10057722
mov eax, dword [0x102160cc]
xor esi, esi
mov edx, dword [0x102160c8]
mov ecx, dword [0x102160c4]
mov edi, dword [0x102160c0]
mov dword [esp + 0x72c], esi
mov dword [esp + 0x728], esi
movsx esi, word [0x10216242]
mov dword [esp + 0x828], eax
mov dword [esp + 0x82c], edx
mov dword [esp + 0x830], ecx
lea ecx, [esp + 0x834]
mov dword [ecx], edi
mov edi, 4
jmp 0x10057d72
mov edx, ecx
neg edx
mov esi, edx
sar esi, 3
mov dword [esp + 0x22c], 4
movzx ebp, word [esi*2 + 0x10215fe0]
lea edi, [esi + 1]
shr ebp, 5
cmp ebp, edx
jl 0x10059247
mov edi, esi
movzx ebp, word [edi*2 + 0x10215fe0]
mov eax, ebp
and eax, 0x1f
shr ebp, 5
add ecx, ebp
movsx ebp, word [eax*2 + 0x10216226]
shl eax, 4
mov edx, dword [eax + 0x10215f4c]
mov esi, dword [eax + 0x10215f48]
mov edi, dword [eax + 0x10215f44]
mov eax, dword [eax + 0x10215f40]
mov dword [esp + 0x7a8], edx
mov dword [esp + 0x7ac], esi
mov dword [esp + 0x7b0], edi
mov dword [esp + 0x7b4], eax
jmp 0x100576ad
mov edx, dword [esp + 0x1f0]
mov edi, dword [esp + 0x1ec]
mov esi, dword [esp + 0x1f8]
mov ebp, dword [esp + 0x2fc]
lea ecx, [edx + ebx*2 + 1]
mov edx, dword [esp + 0x218]
shr edx, cl
mov ecx, 1
mov dword [esp + 0x18], 0x39
and edx, 1
mov dword [esp + 0x14], ecx
jmp 0x10058dae
mov ecx, 1
mov edx, dword [esp + 0x1f4]
mov edi, dword [esp + 0x1ec]
mov esi, dword [esp + 0x1f8]
mov ebp, dword [esp + 0x2fc]
mov dword [esp + 0x18], 0x39
mov dword [esp + 0x14], ecx
jmp 0x10058dae
xor eax, eax
test ebp, ebp
setge al
mov dword [esp + 0x208], eax
jmp 0x10055f26
mov dword [esp + 0x190], 1
jmp 0x10055e94
mov ebx, 1
jmp 0x10055a21
mov dword [esp + 0x7ec], eax
mov dword [esp + 0x7e8], eax
jmp 0x10054e62