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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x864
mov eax, dword [esp + 0x884]
mov dword [esp + 0x27c], eax
xor eax, eax
mov ecx, dword [esp + 0x880]
mov edx, dword [0x543b10]
xor edx, esp
mov dword [esp + 0x860], edx
mov esi, dword [esp + 0x88c]
mov dword [esp + 0x7e0], eax
mov dword [esp + 0x7ec], 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 + 4], eax
mov dword [esp + 0x280], ecx
test ecx, ecx
jle 0x4b77a9
mov edx, dword [esp + 0x888]
mov ebp, edx
shr ebp, 0x16
and ebp, 7
test edx, 0x80000000
jne 0x4b326d
test ebp, 1
jne 0x4b326d
xor ebp, ebp
mov edi, dword [esp + 0x888]
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, ebp
bts ebx, ebp
and edx, 2
test ebp, 4
je 0x4b32df
test edx, edx
mov edx, 0xaaaa
jne 0x4b32d6
mov edx, 0xfa
mov dword [esp + 0x210], edx
jmp 0x4b3309
test edx, edx
je 0x4b32f0
mov dword [esp + 0x210], 0xfa00
jmp 0x4b3309
mov edx, 0xa8a8
test ebp, 1
je 0x4b3302
mov edx, 0
mov dword [esp + 0x210], edx
fld qword [esp + 0x878]
mov edi, dword [esp + 0x87c]
mov ecx, edi
and ecx, 0x80000000
mov ebp, edi
xor ebp, ecx
mov edx, ebp
fstp qword [esp + 8]
mov dword [esp + 0xc], ebp
fld qword [esp + 8]
shr edx, 4
add edx, 0xfc010000
fstp qword [esp + 0x214]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x268], ebp
mov dword [esp + 0x264], ebp
and edi, 0x7ff00000
jne 0x4b357b
mov eax, dword [esp + 8]
or eax, ebp
jne 0x4b3399
xor eax, eax
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x7e4], eax
test ecx, ecx
je 0x4b338a
mov eax, dword [esp + 0x89c]
mov dword [eax], 0xffffffff
jmp 0x4b33da
mov eax, dword [esp + 0x89c]
mov dword [eax], 1
jmp 0x4b33da
test ecx, ecx
je 0x4b33ac
mov eax, dword [esp + 0x89c]
mov dword [eax], 0xfffffffe
jmp 0x4b33b9
mov eax, dword [esp + 0x89c]
mov dword [eax], 2
test dword [esp + 0x888], 0x10000000
je 0x4b34cb
xor eax, eax
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x7e4], eax
test dword [esp + 0x888], 0x80
je 0x4b33f4
mov dword [esp + 0x27c], 1
jmp 0x4b3466
test byte [esp + 0x888], 2
je 0x4b3424
mov eax, dword [esp + 0x27c]
inc eax
mov dword [esp + 0x27c], eax
cmp eax, dword [esp + 0x880]
jle 0x4b343d
mov eax, dword [esp + 0x880]
mov dword [esp + 0x280], eax
mov edx, dword [esp + 0x280]
mov edi, esi
lea eax, [edx - 1]
mov dword [esp + 0x27c], eax
test edx, edx
jne 0x4b346d
jmp 0x4b3497
cmp dword [esp + 0x27c], 0
jg 0x4b3466
mov edx, dword [esp + 0x898]
mov ebp, esi
mov byte [esi], 0x30
lea edi, [esi + 1]
mov dword [edx], 1
mov edx, 6
jmp 0x4b36d9
dec dword [esp + 0x27c]
mov edx, dword [esp + 0x27c]
lea eax, [edx + 1]
cmp edx, 0x60
jle 0x4b7157
push eax
push 0x30
push esi
call fcn.004ca8b0
add esp, 0xc
mov eax, dword [esp + 0x27c]
lea edi, [esi + eax + 1]
mov eax, dword [esp + 0x898]
mov edx, 0xb
test dword [esp + 0x888], 0x40000000
mov ebp, dword [esp + 0x88c]
mov dword [eax], 1
jne 0x4b36d9
mov edx, 0
jmp 0x4b36d9
fld qword [esp + 0x214]
mov edx, ebp
and edx, 0x7ff00000
fstp st(0)
shr edx, 0x14
je 0x4b34fb
mov ecx, dword [esp + 0x878]
mov eax, ecx
shl ebp, 0xb
shr eax, 0x15
shl ecx, 0xb
or ebp, eax
mov dword [esp + 4], ecx
jmp 0x4b3565
test ebp, ebp
je 0x4b3544
shl ebp, 0xc
mov dword [esp], 0
test ebp, ebp
jle 0x4b351a
mov eax, dword [esp]
add ebp, ebp
inc eax
test ebp, ebp
jg 0x4b3510
mov dword [esp], eax
mov eax, dword [esp]
mov edx, eax
add eax, 0xc
neg edx
mov ecx, eax
neg ecx
mov edi, dword [esp + 0x878]
shr edi, cl
mov ecx, eax
or ebp, edi
mov edi, dword [esp + 0x878]
shl edi, cl
mov dword [esp + 4], edi
jmp 0x4b3565
mov ebp, dword [esp + 0x878]
xor edx, edx
test ebp, ebp
jle 0x4b3558
add ebp, ebp
inc edx
test ebp, ebp
jg 0x4b3551
add edx, 0x14
mov dword [esp + 4], 0
neg edx
shr ebp, 0xf
shl edx, 0x10
movzx eax, bp
add edx, 0xfc010000
or edx, eax
jmp 0x4b3774
cmp edi, 0x7ff00000
jne 0x4b3754
mov edx, ebp
xor eax, eax
xor edx, 0x7ff00000
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x7e4], eax
or edx, dword [esp + 0x878]
jne 0x4b3639
test ecx, ecx
je 0x4b35bf
mov eax, dword [esp + 0x89c]
mov dword [eax], 0xfffffffc
jmp 0x4b35cc
mov eax, dword [esp + 0x89c]
mov dword [eax], 4
test ebx, 0x400
je 0x4b35ea
test ebx, 0x200
je 0x4b35e3
mov eax, str.INFINITY
jmp 0x4b35ef
mov eax, str.infinity
jmp 0x4b35ef
mov eax, str.Infinity
mov edi, esi
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x4b3606
mov byte [edi], al
inc edi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x4b35fb
mov ebx, dword [esp + 0x898]
mov edx, edi
mov ecx, dword [esp + 0x888]
sub edx, esi
and ecx, 0x40000000
shr ecx, 0x1d
mov dword [ebx], edx
mov edx, 4
shl edx, cl
mov ebp, dword [esp + 0x88c]
add edx, 0xfffffffc
jmp 0x4b36d9
test ebx, 0x400
je 0x4b3685
test ebp, 0x80000
jne 0x4b3658
shr ecx, 0x1e
mov eax, 0x10
shr eax, cl
add eax, 0xfffffff6
jmp 0x4b3666
mov eax, 0xfffffffb
test ecx, ecx
jne 0x4b3666
mov eax, 5
mov edx, dword [esp + 0x89c]
mov dword [edx], eax
test ebx, 0x200
je 0x4b367e
mov eax, 0x50a960
jmp 0x4b3697
mov eax, 0x50a964
jmp 0x4b3697
mov eax, dword [esp + 0x89c]
mov dword [eax], 0
mov eax, 0x50a968
mov edi, esi
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x4b36ae
mov byte [edi], al
inc edi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x4b36a3
mov ebx, dword [esp + 0x898]
mov ecx, edi
mov edx, 0xa
test dword [esp + 0x888], 0x40000000
mov ebp, dword [esp + 0x88c]
jne 0x4b36d5
mov edx, 0
sub ecx, esi
mov dword [ebx], ecx
mov ebx, dword [esp + 0x890]
mov byte [edi], 0
test ebx, ebx
je 0x4b36ed
mov ecx, ebp
sub ecx, esi
mov dword [ebx], ecx
mov ecx, dword [esp + 0x894]
test ecx, ecx
je 0x4b36fe
neg esi
add esi, edi
mov dword [ecx], esi
mov ecx, ebp
test ebp, ebp
je 0x4b3715
cmp ecx, edi
jae 0x4b3715
movsx ebx, byte [ecx]
inc ecx
cmp ebx, 0x30
jne 0x4b371a
test ecx, ecx
jne 0x4b3704
mov edx, 0xb
mov ecx, dword [esp + 0x8a0]
test ecx, ecx
je 0x4b3727
mov dword [ecx], edx
mov ecx, dword [esp + 0x860]
mov dword [esp + 0x860], 0
xor ecx, esp
cmp ecx, dword [0x543b10]
jne 0x4b7190
mov eax, ebp
add esp, 0x864
pop ebp
pop ebx
pop edi
pop esi
ret
test ecx, ecx
je 0x4b3767
mov ecx, dword [esp + 0x89c]
mov dword [ecx], 0xfffffffd
jmp 0x4b3774
mov ecx, dword [esp + 0x89c]
mov dword [ecx], 3
mov ecx, ebx
and ecx, 0x100
mov dword [esp + 0x1e0], ecx
je 0x4b3919
fld qword [esp + 0x214]
and ebx, 0x200
mov eax, ebx
xor eax, 0x200
shr eax, 4
mov ecx, dword [esp + 0x1c]
and ecx, 0x7ff00000
fstp st(0)
lea edx, [eax + 0x46]
add eax, 8
mov dword [esp + 0x14], edx
shr ecx, 0x14
mov dword [esp + 0x10], ecx
je 0x4b37e6
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x878]
or ecx, 0xfff00000
mov edx, ebp
shl ecx, 0xb
shr edx, 0x15
or ecx, edx
mov dword [esp + 0x1c], ecx
shl ebp, 0xb
jmp 0x4b386f
cmp dword [esp + 0x1c], 0
je 0x4b3834
mov edx, dword [esp + 0x1c]
shl edx, 0xc
mov dword [esp + 0x1c], edx
test edx, edx
mov edx, 0
jle 0x4b3810
mov ebp, dword [esp + 0x1c]
add ebp, ebp
inc edx
test ebp, ebp
jg 0x4b3805
mov dword [esp + 0x1c], ebp
mov ebp, edx
add edx, 0xc
mov ecx, edx
neg ebp
mov dword [esp + 0x10], ebp
neg ecx
mov ebp, dword [esp + 0x878]
mov edi, ebp
shr edi, cl
mov ecx, edx
or dword [esp + 0x1c], edi
shl ebp, cl
jmp 0x4b386f
mov edx, dword [esp + 0x878]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], 0
test edx, edx
jle 0x4b3860
mov ecx, edx
mov edx, dword [esp + 0x10]
add ecx, ecx
inc edx
test ecx, ecx
jg 0x4b3851
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x10]
xor ebp, ebp
add edx, 0x14
neg edx
mov dword [esp + 0x10], edx
xor edx, edx
test ebp, ebp
mov ecx, dword [esp + 0x880]
lea edi, [esi + 1]
mov dword [esp + 0x7e8], ebp
setne dl
mov ebp, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x7e4], ebp
mov ebp, edi
mov dword [esp], 1
mov byte [esi], 0x30
mov dword [esp + 0x1e4], ebp
mov dword [esp + 0x2f8], esi
mov dword [esp + 0x18], edx
lea edx, [ecx - 1]
mov dword [esp + 4], eax
mov ecx, 8
mov dword [esp + 0x21c], ebx
mov ebp, dword [esp]
mov esi, dword [esp + 0x1c]
mov ebx, esi
dec ecx
shr ebx, 0x1c
shl esi, 4
cmp ebx, 0xa
jge 0x4b38de
lea eax, [ebx + 0x30]
jmp 0x4b38f0
cmp dword [esp + 0x21c], 0
je 0x4b38ed
lea eax, [ebx + 0x37]
jmp 0x4b38f0
lea eax, [ebx + 0x57]
mov byte [edi], al
inc edi
test edx, edx
jle 0x4b73cd
dec edx
test ecx, ecx
jne 0x4b38cb
cmp ebp, dword [esp + 0x18]
jae 0x4b7195
inc ebp
mov ecx, 8
mov esi, dword [esp + ebp*4 + 0x7e0]
jmp 0x4b38cb
test edx, edx
mov dword [esp + 0x7e4], eax
mov eax, 0
setl al
mov ebp, dword [esp + 4]
add eax, 0x4d104d42
mov dword [esp + 0x7e8], ebp
mov dword [esp + 0x168], edx
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x168]
imul dword [esp + 0x16c]
mov dword [esp + 0x170], edx
fld qword [esp + 0x214]
mov ecx, ebx
movsx edx, word [esp + 0x172]
lea ebp, [esi + 1]
inc edx
and ecx, 2
mov dword [esp + 0x180], edx
mov edx, ebx
mov eax, dword [esp + 0x87c]
and edx, 0x41
shr eax, 0x1c
and ebx, 0x14
and eax, 0xfffffff8
xor edi, edi
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0x888]
mov dword [esp + 0x17c], edi
and eax, 2
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x174], edx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x1e4], ebp
mov dword [esp + 0x2f8], esi
jmp 0x4b39f8
fld qword [esp + 0x214]
mov ebp, dword [esp + 0x1d8]
neg ebp
mov eax, dword [esp + 0x14c]
mov edi, dword [esp + 0x1f4]
lea edx, [ebp + 1]
mov dword [esp + 0x180], edx
test eax, eax
je 0x4b3a92
cmp dword [esp + 0x27c], 0
jge 0x4b3a25
mov edi, dword [esp + 0x27c]
neg edi
mov dword [esp + 0x17c], edi
mov dword [esp + 0x27c], 0
mov edx, dword [esp + 0x27c]
mov ecx, dword [esp + 0x180]
lea ebx, [edx + ecx]
mov dword [esp + 0x280], ebx
cmp ebx, dword [esp + 0x880]
jle 0x4b3a77
mov edx, ecx
sub ebx, dword [esp + 0x880]
neg ebx
mov ecx, dword [esp + 0x898]
add ebx, dword [esp + 0x17c]
test edi, edi
mov ebp, dword [esp + 0x880]
mov dword [ecx], edx
je 0x4b3a6e
mov edi, ebx
mov dword [esp + 0x280], ebp
jmp 0x4b3aa2
cmp dword [esp + 0x280], 0
jle 0x4b73f7
mov edx, ecx
mov ecx, dword [esp + 0x898]
mov dword [ecx], edx
jmp 0x4b3aa2
mov ecx, dword [esp + 0x898]
mov edx, dword [esp + 0x180]
mov dword [ecx], edx
mov ebp, edx
neg ebp
jne 0x4b3b8d
mov edx, dword [esp + 0x268]
and edx, 0x7ff00000
shr edx, 0x14
je 0x4b3ae1
mov ebx, dword [esp + 0x268]
mov esi, dword [esp + 0x878]
or ebx, 0xfff00000
mov ecx, esi
shl ebx, 0xb
shr ecx, 0x15
shl esi, 0xb
or ebx, ecx
jmp 0x4b3b60
cmp dword [esp + 0x268], 0
je 0x4b3b45
mov ebx, dword [esp + 0x268]
shl ebx, 0xc
mov dword [esp + 0x10], 0
test ebx, ebx
jle 0x4b3b10
mov edx, dword [esp + 0x10]
add ebx, ebx
inc edx
test ebx, ebx
jg 0x4b3b05
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov esi, edx
add edx, 0xc
neg esi
mov ecx, edx
neg ecx
mov dword [esp + 0x2f4], esi
mov esi, dword [esp + 0x878]
shr esi, cl
mov ecx, edx
or ebx, esi
mov esi, dword [esp + 0x878]
shl esi, cl
mov edx, dword [esp + 0x2f4]
jmp 0x4b3b60
mov ebx, dword [esp + 0x878]
xor edx, edx
test ebx, ebx
jle 0x4b3b59
add ebx, ebx
inc edx
test ebx, ebx
jg 0x4b3b52
add edx, 0x14
xor esi, esi
neg edx
test esi, esi
mov dword [esp + 0x7e4], ebx
mov ebx, 0
setne bl
add edx, 0xfffffc02
inc ebx
mov dword [esp + 0x7e8], esi
mov dword [esp + 0x270], ebx
xor ebx, ebx
jmp 0x4b3e09
cmp dword [esp + 0x280], 0xf
jge 0x4b3bab
cmp ebp, 0xfffffece
jl 0x4b3bab
cmp ebp, 0x132
jle 0x4b3c7f
xor edx, edx
mov dword [esp + 0x820], edx
mov dword [esp + 0x824], edx
mov dword [esp + 0x828], edx
mov dword [esp + 0x82c], edx
mov dword [esp + 0x830], edx
mov dword [esp + 0x834], edx
mov dword [esp + 0x838], edx
mov dword [esp + 0x83c], edx
mov dword [esp + 0x840], edx
mov dword [esp + 0x844], edx
mov dword [esp + 0x848], edx
mov dword [esp + 0x84c], edx
mov dword [esp + 0x850], edx
mov dword [esp + 0x854], edx
mov dword [esp + 0x858], edx
mov dword [esp + 0x85c], edx
cmp ebp, 0xfffffeaa
jl 0x4b3c76
cmp ebp, 0x159
jg 0x4b3c76
mov esi, 0x80
cmp dword [esp + 0x280], 0x11
jg 0x4b3c41
mov esi, 0x40
xor ebx, ebx
cmp esi, 0x80
setne bl
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1f8], ebx
mov dword [esp + 0x1d8], ebp
mov dword [esp + 0x14c], eax
mov dword [esp + 0x1f4], edi
fstp st(0)
jmp 0x4b44d8
mov esi, 0x80
xor ebx, ebx
jmp 0x4b3c4c
cmp ebp, 0xffffffd1
jge 0x4b3cc3
mov ecx, ebp
neg ecx
mov ebx, ecx
sar ebx, 3
movzx edx, word [ebx*2 + 0x50bcc0]
lea esi, [ebx + 1]
shr edx, 5
cmp edx, ecx
jl 0x4b3ca1
mov esi, ebx
movzx ecx, word [esi*2 + 0x50bcc0]
mov edx, ecx
shr ecx, 5
and edx, 0x1f
add ecx, ebp
fld qword [edx*8 + 0x50bc20]
fmul qword [ecx*8 + 0x50ba98]
jmp 0x4b3d0c
cmp ebp, 0x2f
jle 0x4b3d05
mov ecx, ebp
sar ecx, 3
movzx edx, word [ecx*2 + 0x50bda2]
lea ebx, [ecx + 1]
shr edx, 5
cmp edx, ebp
jle 0x4b3ce1
mov ebx, ecx
movzx edx, word [ebx*2 + 0x50bda0]
mov esi, edx
shr edx, 5
and esi, 0x1f
neg edx
add edx, ebp
fld qword [esi*8 + 0x50bd20]
fmul qword [edx*8 + 0x50ba98]
jmp 0x4b3d0c
fld qword [ebp*8 + 0x50ba98]
fmul st(1)
fstp qword [esp + 0x398]
mov edx, dword [esp + 0x39c]
mov dword [esp + 8], edx
and edx, 0x7ff00000
mov ecx, dword [esp + 0x398]
mov dword [esp + 4], ecx
shr edx, 0x14
je 0x4b3d57
mov esi, dword [esp + 8]
or esi, 0xfff00000
mov ebx, ecx
shl esi, 0xb
shr ebx, 0x15
shl ecx, 0xb
or esi, ebx
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
jmp 0x4b3dd6
cmp dword [esp + 8], 0
je 0x4b3dab
mov edx, dword [esp + 8]
shl edx, 0xc
mov dword [esp + 8], edx
mov dword [esp], 0
test edx, edx
jle 0x4b3d85
mov ecx, dword [esp]
add edx, edx
inc ecx
test edx, edx
jg 0x4b3d77
mov dword [esp + 8], edx
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
add ecx, 0xc
neg edx
mov esi, dword [esp + 4]
mov ebx, esi
mov dword [esp], ecx
neg ecx
shr ebx, cl
mov ecx, dword [esp]
shl esi, cl
or dword [esp + 8], ebx
mov dword [esp + 4], esi
jmp 0x4b3dd6
mov edx, ecx
mov dword [esp + 8], edx
test edx, edx
mov edx, 0
jle 0x4b3dc9
mov ebx, dword [esp + 8]
add ebx, ebx
inc edx
test ebx, ebx
jg 0x4b3dbe
mov dword [esp + 8], ebx
add edx, 0x14
mov dword [esp + 4], 0
neg edx
mov ebx, dword [esp + 4]
test ebx, ebx
mov dword [esp + 0x7e8], ebx
mov ebx, 0
setne bl
add edx, 0xfffffc02
mov esi, dword [esp + 8]
inc ebx
mov dword [esp + 0x7e4], esi
mov dword [esp + 0x270], ebx
mov ebx, 1
mov esi, 0x35
mov dword [esp + 0x14c], eax
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1f8], ebx
mov dword [esp + 0x1d8], ebp
mov dword [esp + 0x1f4], edi
mov eax, dword [esp + 0x270]
fstp st(0)
test edx, edx
jg 0x4b39d0
mov edi, edx
neg edi
je 0x4b3f5c
mov ecx, edi
lea esi, [eax - 1]
mov ebp, dword [esp + eax*4 + 0x7e0]
neg ecx
mov ebx, ebp
shl ebx, cl
mov ecx, edi
shr ebp, cl
mov dword [esp + eax*4 + 0x7e4], ebx
mov dword [esp + eax*4 + 0x7e0], ebp
cmp eax, 1
je 0x4b3f55
mov ecx, esi
shr ecx, 1
je 0x4b779f
xor ebp, ebp
lea ebx, [esp + eax*4 + 0x7dc]
mov dword [esp + 0x184], esi
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x270], eax
mov dword [esp + 0x2f4], edx
mov esi, ebp
nop
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esi + ebx]
mov eax, edi
mov edx, dword [esp + 0x2f4]
mov ecx, edx
shl eax, cl
inc ebp
or dword [esi + ebx + 4], eax
mov eax, dword [esi + ebx - 4]
mov ecx, dword [esp + 0x2f0]
shr edi, cl
mov ecx, edx
mov edx, eax
shl edx, cl
mov ecx, dword [esp + 0x2f0]
or edi, edx
shr eax, cl
mov dword [esi + ebx], edi
mov dword [esi + ebx - 4], eax
add esi, 0xfffffff8
cmp ebp, dword [esp + 0x2ec]
jb 0x4b3ec0
mov esi, dword [esp + 0x184]
lea ebp, [ebp + ebp + 1]
mov edi, ecx
mov eax, dword [esp + 0x270]
mov edx, dword [esp + 0x2f4]
lea ebx, [ebp - 1]
cmp ebx, esi
jae 0x4b3f4e
sub esi, ebp
mov ecx, edx
mov ebx, dword [esp + esi*4 + 0x7e4]
shl ebx, cl
mov ecx, edi
or dword [esp + esi*4 + 0x7e8], ebx
shr dword [esp + esi*4 + 0x7e4], cl
mov ebx, dword [esp + eax*4 + 0x7e4]
jmp 0x4b3f55
mov ebx, dword [esp + eax*4 + 0x7e4]
xor edx, edx
cmp edx, ebx
adc eax, 0
mov edx, dword [esp + 0x280]
cmp edx, 0x27
mov edi, dword [esp + 0x2f8]
jle 0x4b3f74
mov edx, 0x27
mov byte [edi], 0x30
mov edi, dword [esp + 0x1e4]
cmp edx, dword [esp + 0x1f4]
jle 0x4b415f
sub edx, dword [esp + 0x1f4]
je 0x4b415f
xor ebp, ebp
mov dword [esp + 0x2fc], edx
xor ecx, ecx
mov dword [esp + 0x7e0], 0
test eax, eax
je 0x4b4135
mov ebx, dword [esp + eax*4 + 0x7e0]
mov edx, 0
mov dword [esp + eax*4 + 0x7e0], 0
je 0x4b4126
mov edi, eax
shr edi, 1
je 0x4b74b4
xor esi, esi
lea edx, [esp + eax*4 + 0x7e0]
mov dword [esp + 0x270], eax
mov dword [esp + 0x278], ebp
mov dword [esp + 0x31c], edi
mov dword [esp + 0x274], ecx
mov eax, esi
xor ebp, ebp
lea edi, [ebx + ebx*4]
xor ecx, ecx
cmp edi, ebx
setb cl
inc esi
shr ebx, 0x1e
add ebx, ecx
mov ecx, dword [eax + edx - 4]
add ebx, ebx
mov dword [esp + 0x324], ecx
mov ecx, dword [eax + edx]
mov dword [esp + 0x320], esi
mov esi, edi
shr esi, 0x1f
or ebx, esi
lea esi, [edi + edi]
lea edi, [ecx + edi*2]
xor ecx, ecx
cmp edi, esi
mov esi, dword [esp + 0x324]
setb cl
add ebx, ecx
mov dword [eax + edx], edi
lea edi, [esi + esi*4]
cmp edi, esi
lea ecx, [ebx + edi*2]
mov ebx, ebp
setb bl
shr esi, 0x1e
add esi, ebx
mov ebx, edi
add edi, edi
add esi, esi
cmp ecx, edi
mov dword [eax + edx - 4], ecx
mov ecx, ebp
setb cl
shr ebx, 0x1f
or esi, ebx
mov ebx, dword [eax + edx - 8]
add esi, ecx
mov dword [eax + edx - 8], esi
add eax, 0xfffffff8
mov esi, dword [esp + 0x320]
cmp esi, dword [esp + 0x31c]
jb 0x4b4004
mov ebp, dword [esp + 0x278]
lea edx, [esi + esi + 1]
mov ecx, dword [esp + 0x274]
mov eax, dword [esp + 0x270]
lea esi, [edx - 1]
cmp esi, eax
jae 0x4b411f
neg edx
add edx, eax
mov dword [esp + 0x278], ebp
lea ebp, [ebx + ebx*4]
cmp ebp, ebx
mov dword [esp + 0x274], ecx
mov esi, dword [esp + edx*4 + 0x7e4]
lea edi, [esi + ebp*2]
mov esi, 0
mov ecx, esi
setb cl
shr ebx, 0x1e
add ebx, ecx
lea ecx, [ebp + ebp]
cmp edi, ecx
mov ecx, esi
mov dword [esp + edx*4 + 0x7e4], edi
setb cl
add ebx, ebx
shr ebp, 0x1f
or ebx, ebp
add ebx, ecx
mov dword [esp + edx*4 + 0x7e0], ebx
mov edx, dword [esp + eax*4 + 0x7e0]
mov ebp, dword [esp + 0x278]
mov ecx, dword [esp + 0x274]
jmp 0x4b4126
mov edx, dword [esp + eax*4 + 0x7e0]
cmp edx, 1
mov ebx, dword [esp + 0x7e0]
sbb eax, 0
jmp 0x4b4137
xor ebx, ebx
mov esi, dword [esp + 0x2f8]
lea edx, [ebx + 0x30]
add ebp, 0x35269
mov byte [ecx + esi + 1], dl
lea edi, [ecx + esi + 2]
inc ecx
cmp ecx, dword [esp + 0x2fc]
jb 0x4b3fa3
jmp 0x4b4168
mov ebx, dword [esp + 0x7e0]
xor ebp, ebp
mov eax, dword [esp + 0x1f0]
add ebp, 0xffff
shr ebp, 0x10
mov byte [edi], 0
lea edx, [eax + 0x1f]
mov esi, edx
and esi, 0xffffffe0
mov ecx, esi
sub ecx, eax
add ecx, ebp
mov ebp, dword [esp + 0x1f8]
shl ebp, cl
mov dword [esp + 0x20c], ebp
mov ebp, dword [esp + 0x7e4]
mov dword [esp + 0x204], ebp
mov dword [esp + 0x200], ecx
add ebp, 0x80000000
je 0x4b41ca
xor eax, eax
cmp ebp, 0x80000000
setne al
mov dword [esp + 0x208], eax
jmp 0x4b41d5
mov dword [esp + 0x208], 0
mov dword [esp + 0x2e4], edx
xor edx, edx
xor eax, eax
test ebp, ebp
mov ecx, dword [esp + 0x1e8]
setns al
and ebx, 1
mov dword [esp + 0x1fc], eax
sub esi, dword [esp + 0x200]
add eax, ecx
lea ecx, [eax + ebx*2]
mov eax, dword [esp + 0x208]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x210]
shr eax, cl
and eax, 1
mov dword [esp + 0x1ec], eax
mov ecx, dword [esp + 0x204]
mov eax, dword [esp + 0x20c]
lea ecx, [eax + ecx - 0x80000000]
add eax, eax
cmp ecx, eax
setbe dl
mov dword [esp + 0x2e0], edx
mov edx, dword [esp + 0x2e4]
cmp esi, 0x20
jb 0x4b4490
mov eax, dword [esp + 0x204]
add eax, 0x80000001
cmp eax, 1
ja 0x4b7755
mov ecx, dword [esp + 0x200]
mov eax, ecx
shr edx, 5
shr eax, 5
sub edx, eax
mov esi, dword [esp + 0x1f8]
shl esi, cl
mov dword [esp + 0x20c], esi
mov dword [esp + 0x2e0], esi
mov dword [esp + 0x2dc], esi
mov dword [esp + 0x188], edx
cmp edx, 1
jle 0x4b442b
lea eax, [edx - 1]
shr eax, 1
mov dword [esp + 0x2d8], eax
je 0x4b778f
xor eax, eax
lea ecx, [esp + edx*4 + 0x7e0]
mov dword [esp + 0x2d4], ecx
xor ecx, ecx
mov dword [esp + 0x164], edi
mov dword [esp + 0x2e4], edx
mov dword [esp + 0x160], ebx
mov edi, ecx
mov esi, dword [esp + 0x2d4]
xor ebx, ebx
inc eax
mov dword [esp + 0x2e8], eax
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 + 0x2e0]
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 + 0x2e0], eax
mov eax, dword [esp + 0x2dc]
neg eax
add eax, edx
cmp eax, edx
mov edx, ebx
mov eax, dword [esp + 0x2e4]
seta dl
neg edx
add edx, esi
cmp edx, esi
lea edx, [edi + eax - 2]
mov eax, dword [esp + 0x2e8]
seta bl
add edi, 0xfffffffe
mov dword [esp + 0x2dc], ebx
cmp eax, dword [esp + 0x2d8]
jb 0x4b42e1
mov dword [esp + 0x188], edx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x2e4]
mov ebx, dword [esp + 0x160]
mov edi, dword [esp + 0x164]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x18c]
lea esi, [edx - 1]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x4b777c
mov esi, eax
mov eax, edx
sub eax, esi
mov dword [esp + 0x164], edi
neg esi
mov ecx, dword [esp + 0x2e0]
mov dword [esp + 0x160], ebx
xor ebx, ebx
mov edi, dword [esp + eax*4 + 0x7e4]
xor eax, eax
test edi, edi
lea edx, [edx + esi]
setne al
add ecx, edi
cmp ecx, edi
mov dword [esp + 0x188], edx
setb bl
xor ecx, ecx
mov dword [esp + 0x2e0], ebx
mov ebx, dword [esp + 0x2dc]
neg ebx
add ebx, edi
cmp ebx, edi
mov ebx, dword [esp + 0x160]
seta cl
or ebp, eax
mov eax, 0
setge al
mov edi, dword [esp + 0x164]
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x1fc], eax
mov edx, dword [esp + 0x188]
mov eax, dword [esp + 0x2e0]
mov ecx, dword [esp + edx*4 + 0x7e0]
add eax, ecx
sub ecx, dword [esp + 0x2dc]
xor eax, ecx
shr eax, 0x1f
mov dword [esp + 0x2e0], eax
test ebp, ebp
je 0x4b4466
xor eax, eax
cmp ebp, 0x80000000
setne al
jmp 0x4b4468
xor eax, eax
mov edx, dword [esp + 0x1e8]
lea ebp, [edx + ebx*2]
add ebp, dword [esp + 0x1fc]
lea ecx, [ebp + eax*4]
mov eax, dword [esp + 0x210]
shr eax, cl
and eax, 1
mov dword [esp + 0x1ec], eax
cmp dword [esp + 0x2e0], 0
je 0x4b7755
cmp dword [esp + 0x20c], 0
je 0x4b7755
cmp dword [esp + 0x1f0], 0x80
jae 0x4b771e
mov eax, 0x40
cmp dword [esp + 0x1f0], 0x40
jb 0x4b44d1
mov eax, 0x80
mov dword [esp + 0x1f0], eax
fld qword [esp + 0x214]
mov eax, dword [esp + 0x264]
and eax, 0x7ff00000
fstp st(0)
shr eax, 0x14
mov dword [esp + 0x1d4], eax
je 0x4b451e
mov eax, dword [esp + 0x264]
mov ebx, dword [esp + 0x878]
or eax, 0xfff00000
mov edx, ebx
shl eax, 0xb
shr edx, 0x15
shl ebx, 0xb
or eax, edx
jmp 0x4b45a4
cmp dword [esp + 0x264], 0
je 0x4b4564
mov eax, dword [esp + 0x264]
xor edx, edx
shl eax, 0xc
test eax, eax
jle 0x4b453f
add eax, eax
inc edx
test eax, eax
jg 0x4b4538
mov ebx, edx
add edx, 0xc
mov ecx, edx
neg ebx
mov dword [esp + 0x1d4], ebx
neg ecx
mov ebx, dword [esp + 0x878]
mov ebp, ebx
shr ebp, cl
mov ecx, edx
shl ebx, cl
or eax, ebp
jmp 0x4b45a4
mov eax, dword [esp + 0x878]
mov dword [esp + 0x1d4], 0
test eax, eax
jle 0x4b458f
mov edx, dword [esp + 0x1d4]
add eax, eax
inc edx
test eax, eax
jg 0x4b4581
mov dword [esp + 0x1d4], edx
mov edx, dword [esp + 0x1d4]
xor ebx, ebx
add edx, 0x14
neg edx
mov dword [esp + 0x1d4], edx
test ebx, ebx
mov dword [esp + 0x7e4], eax
mov eax, 0
mov dword [esp + 0x7a0], 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
setne al
mov dword [esp + 0x7e8], ebx
mov dword [esp + 0x1dc], eax
mov ecx, dword [esp + 0x1d8]
cmp dword [esp + 0x1f0], 0x40
lea edx, [eax + 1]
mov dword [esp + 0x1d0], edx
jne 0x4b4c19
mov eax, ecx
lea edx, [eax + 0x2f]
cmp edx, 0x5e
ja 0x4b46af
mov edx, dword [esp + 0x180]
xor esi, esi
mov edi, 2
mov dword [esp + 0x7a8], esi
mov dword [esp + 0x7a4], esi
lea ebx, [edx*8]
neg ebx
movsx esi, word [eax*2 + 0x50b4be]
mov ecx, dword [ebx + 0x50b2dc]
mov ebp, dword [ebx + 0x50b2d8]
mov dword [esp + 0x824], ecx
mov dword [esp + 0x828], ebp
test ebp, ebp
jne 0x4b74be
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b469d
jmp 0x4b6cbc
cmp dword [esp + 0x1d8], 0
jl 0x4b74f9
mov ebx, eax
mov eax, ebx
sar eax, 3
movzx edx, word [eax*2 + 0x50b6a2]
lea ecx, [eax + 1]
shr edx, 5
cmp edx, ebx
jle 0x4b46d8
mov ecx, eax
movzx edx, word [ecx*2 + 0x50b6a0]
mov edi, edx
and edi, 0x1f
shr edx, 5
neg edx
add edx, ebx
movsx ebp, word [edi*2 + 0x50b718]
mov esi, dword [edi*8 + 0x50b624]
mov eax, dword [edi*8 + 0x50b620]
mov dword [esp + 0x144], ebp
mov dword [esp + 0x7a4], esi
movsx ecx, word [edx*2 + 0x50b4be]
mov ebx, dword [edx*8 + 0x50b2dc]
mov edx, dword [edx*8 + 0x50b2d8]
mov dword [esp + 0x7a8], eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0x824], ebx
mov ebx, 2
mov dword [esp + 0x828], edx
test edx, edx
jne 0x4b74e8
dec ebx
lea ebp, [esp + ebx*4 + 0x820]
cmp dword [ebp], 0
lea ecx, [ebx*4]
je 0x4b474f
mov dword [esp + 0x134], eax
mov eax, dword [ebp]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x130]
mul dword [esp + 0x134]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
mov eax, dword [ebp]
mov edx, dword [esp + 0x13c]
mov ebp, dword [esp + 0x138]
mov esi, dword [esp + 0x7a4]
mov dword [esp + ebx*4 + 0x664], 0
mov dword [esp + 0x2c4], eax
mov dword [esp + ebx*4 + 0x624], edx
mov dword [esp + ebx*4 + 0x628], ebp
mov dword [esp + 0x2c8], esi
mov eax, dword [esp + 0x2c4]
mul dword [esp + 0x2c8]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], edx
mov ebp, dword [esp + 0x2cc]
xor eax, eax
mov esi, dword [esp + ebx*4 + 0x624]
add esi, ebp
cmp esi, ebp
mov ebp, ebx
mov dword [esp + ebx*4 + 0x660], eax
setb al
add eax, dword [esp + 0x2d0]
mov dword [esp + ebx*4 + 0x624], esi
dec ebp
mov dword [esp + ebx*4 + 0x620], eax
js 0x4b48b2
mov esi, ebx
shr esi, 1
je 0x4b74de
xor edi, edi
lea edx, [esp + ecx + 0x660]
mov dword [esp + 0x2a8], ecx
lea eax, [esp + ecx + 0x620]
mov dword [esp + 0x2ac], ebp
mov dword [esp + 0x2b0], ebx
xor ebx, ebx
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 0x4b4859
mov ecx, dword [esp + 0x2a8]
lea eax, [edi + edi + 1]
mov ebp, dword [esp + 0x2ac]
mov ebx, dword [esp + 0x2b0]
lea edx, [eax - 1]
cmp edx, ebx
jae 0x4b48b2
shl eax, 2
lea edx, [esp + ecx + 0x660]
neg eax
lea ecx, [esp + ecx + 0x620]
xor esi, esi
mov dword [eax + edx], esi
mov dword [eax + ecx], esi
test ebp, ebp
je 0x4b4954
mov dword [esp + 0x2b0], ebx
mov ebx, 2
lea esi, [esp + ebp*4 + 0x660]
lea ecx, [esp + ebp*4 + 0x620]
mov eax, dword [esp + ebp*4 + 0x820]
mov edx, dword [esp + ebx*4 + 0x7a0]
mov dword [esp + 0x378], eax
mov dword [esp + 0x37c], edx
mov eax, dword [esp + 0x378]
mul dword [esp + 0x37c]
mov dword [esp + 0x380], eax
mov dword [esp + 0x384], edx
mov edx, dword [esp + 0x380]
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 + 0x384]
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 0x4b48d4
dec ebp
jne 0x4b48c1
mov ebx, dword [esp + 0x2b0]
mov eax, dword [esp + 0x140]
lea edx, [ebx + 2]
mov esi, dword [esp + 0x144]
lea ecx, [esp + ebx*4 + 0x828]
mov dword [esp + 0x148], ecx
lea edi, [ebx + 1]
add esi, eax
mov eax, dword [ecx - 0x200]
mov dword [ecx], eax
cmp edx, 1
je 0x4b4aa4
mov eax, edi
shr eax, 1
mov dword [esp + 0x260], eax
mov eax, 0
je 0x4b74d4
xor ecx, ecx
lea ebp, [esp + ebx*4 + 0x824]
mov dword [esp + 0xd0], ebp
lea ebp, [esp + ebx*4 + 0x624]
mov dword [esp + 0xd4], ebp
lea ebp, [esp + ebx*4 + 0x664]
mov dword [esp + 0x25c], ebp
mov dword [esp + 0x308], edi
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x1a8], esi
mov dword [esp + 0xcc], edx
mov edi, ecx
mov ebp, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0x25c]
inc ecx
mov edx, dword [edi + ebp]
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 + ebp - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ebx - 4], esi
setb al
add edi, 0xfffffff8
cmp ecx, dword [esp + 0x260]
jb 0x4b49f7
mov edi, dword [esp + 0x308]
lea ecx, [ecx + ecx + 1]
mov esi, dword [esp + 0x1a8]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x2b0]
lea ebp, [ecx - 1]
cmp ebp, edi
jae 0x4b4a9b
shl ecx, 2
lea ebp, [esp + ebx*4 + 0x664]
neg ecx
mov dword [esp + 0x308], edi
lea edi, [esp + ebx*4 + 0x624]
lea ebx, [esp + ebx*4 + 0x824]
add eax, dword [ecx + ebp + 4]
add eax, dword [ecx + edi + 4]
mov dword [ecx + ebx + 4], eax
mov eax, dword [esp + 0x148]
mov edi, dword [esp + 0x308]
mov eax, dword [eax]
jmp 0x4b4aa4
mov eax, dword [esp + 0x148]
mov eax, dword [eax]
test eax, eax
jne 0x4b4abf
dec edx
lea eax, [esp + edx*4 + 0x820]
cmp dword [eax], 0
je 0x4b4aa8
mov dword [esp + 0x148], eax
lea edi, [edx - 1]
mov ebx, dword [esp + 0x824]
test ebx, ebx
jle 0x4b4b68
mov ecx, dword [esp + 0x140]
add ebx, ebx
mov eax, dword [esp + 0x144]
mov dword [esp + 0x824], ebx
lea esi, [eax + ecx - 1]
cmp edx, 2
jb 0x4b4b68
lea ebx, [edx - 1]
shr ebx, 1
je 0x4b74ca
mov dword [esp + 0xcc], edx
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x828]
mov edx, eax
shr edx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x824], edx
mov edx, dword [esp + ecx*8 + 0x82c]
mov ebp, edx
shr ebp, 0x1f
add edx, edx
or eax, ebp
mov dword [esp + ecx*8 + 0x828], eax
mov dword [esp + ecx*8 + 0x82c], edx
inc ecx
cmp ecx, ebx
jb 0x4b4b02
mov edx, dword [esp + 0xcc]
lea ebx, [ecx + ecx + 1]
lea eax, [ebx - 1]
cmp eax, edi
jae 0x4b4b68
mov ecx, dword [esp + ebx*4 + 0x824]
mov eax, ecx
shr eax, 0x1f
add ecx, ecx
or dword [esp + ebx*4 + 0x820], eax
mov dword [esp + ebx*4 + 0x824], ecx
mov eax, dword [esp + 0x148]
cmp dword [eax], 0
je 0x4b4b76
mov edi, edx
cmp edi, 2
jb 0x4b6cb5
mov eax, dword [esp + 0x82c]
shr eax, 0x1f
mov edx, dword [esp + 0x828]
add edx, eax
mov dword [esp + 0x828], edx
cmp edx, eax
jae 0x4b4bfa
mov dword [esp + 0x820], 0
mov edi, 1
cmp dword [esp + 0x824], 0xffffffff
je 0x4b4bc2
lea ecx, [esp + 0x824]
mov eax, dword [ecx]
jmp 0x4b4bd5
dec edi
lea ecx, [esp + edi*4 + 0x820]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b4bc2
test edi, edi
je 0x4b4bdd
inc eax
mov dword [ecx], eax
jmp 0x4b6cbc
mov dword [esp + 0x824], 0x80000000
inc esi
mov edi, 1
lea ecx, [esp + 0x824]
jmp 0x4b6cbc
mov edi, 2
test edx, edx
jne 0x4b74be
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b4c07
jmp 0x4b6cbc
xor eax, eax
mov dword [esp + 0x7a8], eax
mov dword [esp + 0x7a4], eax
mov dword [esp + 0x760], eax
mov dword [esp + 0x774], 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
cmp dword [esp + 0x1d8], 0xfffffdea
jge 0x4b53b2
mov eax, dword [esp + 0x1f0]
shr eax, 5
cmp dword [esp + 0x1d8], 0xfffff000
jle 0x4b4cdf
xor edx, edx
mov edi, 0x1000
mov dword [esp + 0x154], ebp
xor ebx, ebx
mov dword [esp + 0x770], edx
mov esi, 3
mov dword [esp + 0x76c], edx
mov dword [esp + 0x768], edx
mov dword [esp + 0x764], edx
mov ebp, dword [esp + 0x150]
jmp 0x4b4d3e
mov edx, ecx
mov edi, 0x1000
mov dword [esp + 0x154], ebp
mov esi, 3
lea ecx, [edx + 0x1000]
mov edx, esi
shl edx, 4
movsx ebp, word [esi*2 + 0x50b11e]
mov ebx, dword [edx + 0x50ae0c]
mov dword [esp + 0x764], ebx
mov ebx, dword [edx + 0x50ae08]
mov dword [esp + 0x768], ebx
mov ebx, dword [edx + 0x50ae04]
mov edx, dword [edx + 0x50ae00]
mov dword [esp + 0x76c], ebx
mov ebx, 4
mov dword [esp + 0x770], edx
mov dword [esp + 0x150], ebp
lea edx, [eax - 1]
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], eax
sar edi, 1
dec esi
js 0x4b539a
mov eax, edi
neg eax
cmp ecx, eax
jg 0x4b4d56
add ecx, edi
test ebx, ebx
je 0x4b53a6
mov ebp, esi
shl ebp, 4
movsx eax, word [esi*2 + 0x50b11e]
mov dword [esp + 0x154], eax
mov edx, dword [ebp + 0x50ae0c]
mov eax, dword [ebp + 0x50ae08]
mov dword [esp + 0x7a4], edx
mov dword [esp + 0x7a8], eax
mov edx, dword [ebp + 0x50ae04]
mov ebp, dword [ebp + 0x50ae00]
mov eax, dword [esp + ebx*4 + 0x760]
mov dword [esp + 0x7ac], edx
mov dword [esp + 0x7b0], ebp
mov dword [esp + 0xe8], ebp
lea ebp, [ebx + 3]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
mul dword [esp + 0xe8]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xec]
mov dword [esp + ebp*4 + 0x520], eax
mov eax, 3
mov dword [esp + ebp*4 + 0x524], edx
mov dword [esp + 0xfc], esi
xor esi, esi
mov dword [esp + 0xf8], edi
mov dword [esp + 0xf4], ecx
mov ecx, eax
mov edx, dword [esp + ebx*4 + 0x760]
mov edi, dword [esp + ecx*4 + 0x7a0]
mov dword [esp + ebp*4 + 0x560], 0
mov dword [esp + 0x298], edx
mov dword [esp + 0x29c], edi
mov eax, dword [esp + 0x298]
mul dword [esp + 0x29c]
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], edx
mov edx, dword [esp + 0x2a0]
mov eax, esi
mov edi, dword [esp + ebp*4 + 0x520]
add edi, edx
cmp edi, edx
mov dword [esp + ebp*4 + 0x520], edi
setb al
dec ebp
add eax, dword [esp + 0x2a4]
mov dword [esp + ebp*4 + 0x520], eax
dec ecx
jne 0x4b4e27
mov eax, ebp
mov esi, dword [esp + 0xfc]
dec eax
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov dword [esp + ebp*4 + 0x560], 0
js 0x4b4f8f
mov eax, ebp
shr eax, 1
mov dword [esp + 0x10c], eax
je 0x4b7567
xor eax, eax
lea edx, [esp + ebp*4 + 0x51c]
mov dword [esp + 0xe0], edx
lea edx, [esp + ebp*4 + 0x55c]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x10c]
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 0x4b4f27
mov ebp, dword [esp + 0xd8]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x4b4f8f
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x294], ebx
lea ebx, [esp + ebp*4 + 0x55c]
lea ebp, [esp + ebp*4 + 0x51c]
mov dword [edx + ebx + 4], eax
mov dword [edx + ebp + 4], eax
mov ebx, dword [esp + 0x294]
mov ebp, ebx
dec ebp
je 0x4b5063
mov dword [esp + 0x294], ebx
mov eax, 4
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf8], edi
mov dword [esp + 0xf4], ecx
mov ebx, eax
lea esi, [esp + ebp*4 + 0x560]
lea ecx, [esp + ebp*4 + 0x520]
mov eax, dword [esp + ebp*4 + 0x760]
mov edx, dword [esp + ebx*4 + 0x7a0]
mov dword [esp + 0x358], eax
mov dword [esp + 0x35c], edx
mov eax, dword [esp + 0x358]
mul dword [esp + 0x35c]
mov dword [esp + 0x360], eax
mov dword [esp + 0x364], edx
mov edx, dword [esp + 0x360]
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 + 0x364]
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 0x4b4fc9
mov eax, 4
dec ebp
jne 0x4b4fb9
mov ebx, dword [esp + 0x294]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov ebp, dword [esp + 0x150]
lea edx, [ebx + 4]
add ebp, dword [esp + 0x154]
lea eax, [esp + ebx*4 + 0x770]
mov dword [esp + 0x150], ebp
mov ebp, dword [eax - 0x240]
mov dword [esp + 0x104], edx
mov dword [esp + 0x100], eax
mov dword [eax], ebp
lea eax, [ebx + 3]
cmp edx, 1
je 0x4b51f6
mov edx, eax
mov dword [esp + 0x108], 0
shr edx, 1
mov dword [esp + 0x240], edx
je 0x4b755d
xor ebp, ebp
lea edx, [esp + ebx*4 + 0x76c]
mov dword [esp + 0xb8], edx
lea edx, [esp + ebx*4 + 0x52c]
mov dword [esp + 0xb4], edx
lea edx, [esp + ebx*4 + 0x56c]
mov dword [esp + 0x294], ebx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xf8], edi
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x23c], edx
mov dword [esp + 0xfc], esi
mov edi, ebp
mov ebx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x108]
mov esi, dword [esp + 0x23c]
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 + 0x240]
jb 0x4b5126
mov dword [esp + 0x108], eax
lea edx, [ebp + ebp + 1]
mov ebx, dword [esp + 0x294]
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
lea ebp, [edx - 1]
cmp ebp, eax
jae 0x4b51ed
shl edx, 2
lea ebp, [esp + ebx*4 + 0x56c]
neg edx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0xfc], esi
lea esi, [esp + ebx*4 + 0x52c]
add eax, dword [edx + ebp + 4]
lea ebx, [esp + ebx*4 + 0x76c]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xfc]
mov ebp, dword [edx]
jmp 0x4b51f6
mov edx, dword [esp + 0x100]
mov ebp, dword [edx]
test ebp, ebp
jne 0x4b5221
mov edx, dword [esp + 0x104]
dec edx
lea eax, [esp + edx*4 + 0x760]
cmp dword [eax], 0
je 0x4b5201
mov dword [esp + 0x104], edx
mov dword [esp + 0x100], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x764]
test edx, edx
jle 0x4b52dd
dec dword [esp + 0x150]
add edx, edx
mov dword [esp + 0x764], edx
cmp dword [esp + 0x104], 2
jb 0x4b52dd
mov edx, dword [esp + 0x104]
lea ebp, [edx - 1]
shr ebp, 1
je 0x4b7553
mov dword [esp + 0xf8], edi
xor ebx, ebx
mov dword [esp + 0xf4], ecx
mov edx, dword [esp + ebx*8 + 0x768]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + ebx*8 + 0x764], ecx
mov ecx, dword [esp + ebx*8 + 0x76c]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or edx, edi
mov dword [esp + ebx*8 + 0x768], edx
mov dword [esp + ebx*8 + 0x76c], ecx
inc ebx
cmp ebx, ebp
jb 0x4b5270
mov edi, dword [esp + 0xf8]
lea edx, [ebx + ebx + 1]
mov ecx, dword [esp + 0xf4]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x4b52dd
mov ebp, dword [esp + edx*4 + 0x764]
mov ebx, ebp
shr ebx, 0x1f
add ebp, ebp
or dword [esp + edx*4 + 0x760], ebx
mov dword [esp + edx*4 + 0x764], ebp
mov edx, dword [esp + 0x100]
mov ebx, eax
cmp dword [edx], 0
je 0x4b52f2
mov ebx, dword [esp + 0x104]
cmp ebx, dword [esp + 0x15c]
jb 0x4b5391
mov ebx, dword [esp + 0x15c]
mov eax, ebx
mov edx, dword [esp + eax*4 + 0x764]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x760]
add eax, edx
cmp eax, edx
jae 0x4b5379
mov edx, ebx
mov ebx, dword [esp + 0x158]
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 0x4b5357
dec ebx
lea edx, [esp + ebx*4 + 0x760]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4b5348
test ebx, ebx
je 0x4b5360
inc eax
mov dword [edx], eax
jmp 0x4b5391
inc dword [esp + 0x150]
mov ebx, 1
mov dword [esp + 0x764], 0x80000000
jmp 0x4b5391
mov edx, ebx
mov dword [esp + edx*4 + 0x760], eax
test eax, eax
jne 0x4b5391
dec ebx
cmp dword [esp + ebx*4 + 0x760], 0
je 0x4b5386
sar edi, 1
dec esi
jns 0x4b4d5f
mov ebp, dword [esp + 0x154]
jmp 0x4b5a47
mov eax, dword [esp + 0x15c]
jmp 0x4b4cf8
cmp dword [esp + 0x1d8], 0x216
jle 0x4b5a29
mov eax, dword [esp + 0x1f0]
shr eax, 5
cmp dword [esp + 0x1d8], 0x1000
jge 0x4b5414
xor edx, edx
mov edi, 0x1000
mov dword [esp + 0x154], ebp
xor ebx, ebx
mov dword [esp + 0x770], edx
mov esi, 3
mov dword [esp + 0x76c], edx
mov dword [esp + 0x768], edx
mov dword [esp + 0x764], edx
mov ebp, dword [esp + 0x150]
jmp 0x4b5473
mov edx, ecx
mov edi, 0x1000
mov dword [esp + 0x154], ebp
mov esi, 3
lea ecx, [edx - 0x1000]
mov edx, esi
shl edx, 4
movsx ebp, word [esi*2 + 0x50b13a]
mov ebx, dword [edx + 0x50af8c]
mov dword [esp + 0x764], ebx
mov ebx, dword [edx + 0x50af88]
mov dword [esp + 0x768], ebx
mov ebx, dword [edx + 0x50af84]
mov edx, dword [edx + 0x50af80]
mov dword [esp + 0x76c], ebx
mov ebx, 4
mov dword [esp + 0x770], edx
mov dword [esp + 0x150], ebp
lea edx, [eax - 1]
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
sar edi, 1
dec esi
js 0x4b539a
cmp ecx, edi
jl 0x4b548b
sub ecx, edi
test ebx, ebx
je 0x4b5a1d
mov ebp, esi
shl ebp, 4
movsx eax, word [esi*2 + 0x50b13a]
mov dword [esp + 0x154], eax
mov edx, dword [ebp + 0x50af8c]
mov eax, dword [ebp + 0x50af88]
mov dword [esp + 0x7a4], edx
mov dword [esp + 0x7a8], eax
mov edx, dword [ebp + 0x50af84]
mov ebp, dword [ebp + 0x50af80]
mov eax, dword [esp + ebx*4 + 0x760]
mov dword [esp + 0x7ac], edx
mov dword [esp + 0x7b0], 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 + 0x3a0], eax
mov eax, 3
mov dword [esp + ebp*4 + 0x3a4], edx
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0xf4], ecx
mov ecx, eax
mov edx, dword [esp + ebx*4 + 0x760]
mov edi, dword [esp + ecx*4 + 0x7a0]
mov dword [esp + ebp*4 + 0x3e0], 0
mov dword [esp + 0x22c], edx
mov dword [esp + 0x230], edi
mov eax, dword [esp + 0x22c]
mul dword [esp + 0x230]
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], edx
mov edx, dword [esp + 0x234]
mov eax, esi
mov edi, dword [esp + ebp*4 + 0x3a0]
add edi, edx
cmp edi, edx
mov dword [esp + ebp*4 + 0x3a0], edi
setb al
dec ebp
add eax, dword [esp + 0x238]
mov dword [esp + ebp*4 + 0x3a0], eax
dec ecx
jne 0x4b553a
mov eax, ebp
mov esi, dword [esp + 0x40]
dec eax
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf4]
mov dword [esp + ebp*4 + 0x3e0], 0
js 0x4b5678
mov eax, ebp
shr eax, 1
mov dword [esp + 0x50], eax
je 0x4b7585
xor eax, eax
lea edx, [esp + ebp*4 + 0x39c]
mov dword [esp + 0x28], edx
lea edx, [esp + ebp*4 + 0x3dc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0xf4], 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 0x4b5619
mov ebp, dword [esp + 0x20]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf4]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x4b5678
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x294], ebx
lea ebx, [esp + ebp*4 + 0x3dc]
lea ebp, [esp + ebp*4 + 0x39c]
mov dword [edx + ebx + 4], eax
mov dword [edx + ebp + 4], eax
mov ebx, dword [esp + 0x294]
mov ebp, ebx
dec ebp
je 0x4b5740
mov dword [esp + 0x294], ebx
mov eax, 4
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0xf4], ecx
mov ebx, eax
lea esi, [esp + ebp*4 + 0x3e0]
lea ecx, [esp + ebp*4 + 0x3a0]
mov eax, dword [esp + ebp*4 + 0x760]
mov edx, dword [esp + ebx*4 + 0x7a0]
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 [esi + ebx*4 - 8], eax
dec ebx
jne 0x4b56ac
mov eax, 4
dec ebp
jne 0x4b569c
mov ebx, dword [esp + 0x294]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf4]
mov ebp, dword [esp + 0x150]
lea edx, [ebx + 4]
add ebp, dword [esp + 0x154]
lea eax, [esp + ebx*4 + 0x770]
mov dword [esp + 0x150], 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 0x4b588b
mov edx, eax
mov dword [esp + 0x4c], 0
shr edx, 1
mov dword [esp + 0x194], edx
je 0x4b757b
xor ebp, ebp
lea edx, [esp + ebx*4 + 0x3ac]
mov dword [esp + 0x14], edx
lea edx, [esp + ebx*4 + 0x3ec]
mov dword [esp + 0x190], edx
lea edx, [esp + ebx*4 + 0x76c]
mov dword [esp + 0x294], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0xf4], 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 + 0x190]
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 + 0x194]
jb 0x4b57dc
mov dword [esp + 0x4c], eax
lea edx, [ebp + ebp + 1]
mov ebx, dword [esp + 0x294]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xf4]
lea ebp, [edx - 1]
cmp ebp, eax
jae 0x4b5885
shl edx, 2
lea ebp, [esp + ebx*4 + 0x3ec]
neg edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x40], esi
lea esi, [esp + ebx*4 + 0x3ac]
add eax, dword [edx + ebp + 4]
lea ebx, [esp + ebx*4 + 0x76c]
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 0x4b588b
mov edx, dword [esp + 0x44]
mov ebp, dword [edx]
test ebp, ebp
jne 0x4b58ad
mov edx, dword [esp + 0x48]
dec edx
lea eax, [esp + edx*4 + 0x760]
cmp dword [eax], 0
je 0x4b5893
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x764]
test edx, edx
jle 0x4b595d
dec dword [esp + 0x150]
add edx, edx
mov dword [esp + 0x764], edx
cmp dword [esp + 0x48], 2
jb 0x4b595d
mov edx, dword [esp + 0x48]
lea ebp, [edx - 1]
shr ebp, 1
je 0x4b7571
mov dword [esp + 0x3c], edi
xor ebx, ebx
mov dword [esp + 0xf4], ecx
mov edx, dword [esp + ebx*8 + 0x768]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + ebx*8 + 0x764], ecx
mov ecx, dword [esp + ebx*8 + 0x76c]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or edx, edi
mov dword [esp + ebx*8 + 0x768], edx
mov dword [esp + ebx*8 + 0x76c], ecx
inc ebx
cmp ebx, ebp
jb 0x4b58f3
mov edi, dword [esp + 0x3c]
lea edx, [ebx + ebx + 1]
mov ecx, dword [esp + 0xf4]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x4b595d
mov ebp, dword [esp + edx*4 + 0x764]
mov ebx, ebp
shr ebx, 0x1f
add ebp, ebp
or dword [esp + edx*4 + 0x760], ebx
mov dword [esp + edx*4 + 0x764], ebp
mov edx, dword [esp + 0x44]
mov ebx, eax
cmp dword [edx], 0
je 0x4b596c
mov ebx, dword [esp + 0x48]
cmp ebx, dword [esp + 0x114]
jb 0x4b5a0b
mov ebx, dword [esp + 0x114]
mov eax, ebx
mov edx, dword [esp + eax*4 + 0x764]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x760]
add eax, edx
cmp eax, edx
jae 0x4b59f3
mov edx, ebx
mov ebx, dword [esp + 0x110]
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 0x4b59d1
dec ebx
lea edx, [esp + ebx*4 + 0x760]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4b59c2
test ebx, ebx
je 0x4b59da
inc eax
mov dword [edx], eax
jmp 0x4b5a0b
inc dword [esp + 0x150]
mov ebx, 1
mov dword [esp + 0x764], 0x80000000
jmp 0x4b5a0b
mov edx, ebx
mov dword [esp + edx*4 + 0x760], eax
test eax, eax
jne 0x4b5a0b
dec ebx
cmp dword [esp + ebx*4 + 0x760], 0
je 0x4b5a00
sar edi, 1
dec esi
jns 0x4b5494
mov ebp, dword [esp + 0x154]
jmp 0x4b5a47
mov eax, dword [esp + 0x114]
jmp 0x4b542d
mov dword [esp + 0x770], eax
xor ebx, ebx
mov dword [esp + 0x76c], eax
mov dword [esp + 0x768], eax
mov dword [esp + 0x764], eax
lea eax, [ecx + 0x1b]
cmp eax, 0x1a
ja 0x4b5aad
movsx esi, word [ecx*2 + 0x50b11e]
mov edi, 4
shl ecx, 4
mov eax, dword [ecx + 0x50adfc]
mov edx, dword [ecx + 0x50adf8]
mov ebp, dword [ecx + 0x50adf4]
mov ecx, dword [ecx + 0x50adf0]
mov dword [esp + 0x824], eax
mov dword [esp + 0x828], edx
mov dword [esp + 0x82c], ebp
mov dword [esp + 0x830], ecx
test ecx, ecx
jne 0x4b758f
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b5a9b
jmp 0x4b67c7
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 ecx, ecx
jl 0x4b76a0
cmp ecx, 0x37
jl 0x4b5b95
mov edx, ecx
sar edx, 3
mov dword [esp + 0x228], 4
movzx ebp, word [edx*2 + 0x50b062]
lea esi, [edx + 1]
shr ebp, 5
cmp ebp, ecx
jle 0x4b5b42
mov esi, edx
movzx edi, word [esi*2 + 0x50b060]
mov eax, edi
and eax, 0x1f
shr edi, 5
sub ecx, edi
movsx ebp, word [eax*2 + 0x50b142]
shl eax, 4
mov edx, dword [eax + 0x50afcc]
mov esi, dword [eax + 0x50afc8]
mov edi, dword [eax + 0x50afc4]
mov eax, dword [eax + 0x50afc0]
mov dword [esp + 0x7a4], edx
mov dword [esp + 0x7a8], esi
mov dword [esp + 0x7ac], edi
mov dword [esp + 0x7b0], eax
jmp 0x4b5ba0
mov dword [esp + 0x228], 0
cmp ecx, 0x37
je 0x4b764a
lea eax, [ecx - 0x1b]
test eax, eax
jle 0x4b7635
movsx edx, word [eax*2 + 0x50b4be]
mov edi, 2
mov ecx, dword [eax*8 + 0x50b2dc]
mov esi, dword [eax*8 + 0x50b2d8]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x724], ecx
mov dword [esp + 0x728], esi
mov dword [esp + 0x26c], edi
test esi, esi
jne 0x4b762b
mov edx, edi
dec edx
cmp dword [esp + edx*4 + 0x720], 0
je 0x4b5bf5
mov dword [esp + 0x26c], edx
mov ecx, 0x1b
movsx esi, word [ecx*2 + 0x50b4be]
mov edi, 2
mov edx, dword [ecx*8 + 0x50b2dc]
mov ecx, dword [ecx*8 + 0x50b2d8]
mov dword [esp + 0x824], edx
mov dword [esp + 0x828], ecx
test ecx, ecx
jne 0x4b761f
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b5c3d
test eax, eax
jle 0x4b6266
mov eax, dword [esp + 0x26c]
lea edx, [eax + edi - 1]
mov dword [esp + 0xa8], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x720]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x90]
mul dword [esp + 0x94]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x9c]
mov dword [esp + eax*4 + 0x4a0], edx
mov edx, dword [esp + 0x98]
mov dword [esp + eax*4 + 0x4a4], edx
mov eax, dword [esp + 0x26c]
dec eax
je 0x4b5d83
mov dword [esp + 0x294], ebx
mov dword [esp + 0x308], edi
mov dword [esp + 0x1a8], esi
xor esi, esi
mov dword [esp + 0x154], ebp
mov ebp, ecx
mov ebx, dword [esp + 0xa8]
mov ecx, eax
mov edx, dword [ebp]
mov edi, dword [esp + ecx*4 + 0x720]
mov dword [esp + ebx*4 + 0x4e0], 0
mov dword [esp + 0x284], edx
mov dword [esp + 0x288], edi
mov eax, dword [esp + 0x284]
mul dword [esp + 0x288]
mov dword [esp + 0x28c], eax
mov dword [esp + 0x290], edx
mov edx, dword [esp + 0x28c]
mov eax, esi
mov edi, dword [esp + ebx*4 + 0x4a0]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0x4a0], edi
setb al
dec ebx
add eax, dword [esp + 0x290]
mov dword [esp + ebx*4 + 0x4a0], eax
dec ecx
jne 0x4b5cf1
mov dword [esp + 0xa8], ebx
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
mov eax, dword [esp + 0xa8]
mov dword [esp + eax*4 + 0x4e0], 0
dec eax
js 0x4b5e72
mov eax, dword [esp + 0xa8]
shr eax, 1
mov dword [esp + 0xb0], eax
je 0x4b7615
mov ecx, dword [esp + 0xa8]
xor eax, eax
mov dword [esp + 0x294], ebx
mov dword [esp + 0x154], ebp
lea edx, [esp + ecx*4 + 0x49c]
mov dword [esp + 0x8c], edx
lea edx, [esp + ecx*4 + 0x4dc]
mov dword [esp + 0x88], edx
mov dword [esp + 0x1a8], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
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 0x4b5e05
mov esi, dword [esp + 0x1a8]
lea edx, [eax + eax + 1]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xa8]
jae 0x4b5e72
shl edx, 2
xor eax, eax
mov dword [esp + 0x308], edi
neg edx
mov edi, dword [esp + 0xa8]
lea ecx, [esp + edi*4 + 0x4dc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + edi*4 + 0x49c]
mov dword [edx + ecx + 4], eax
mov edi, dword [esp + 0x308]
mov ecx, edi
dec ecx
je 0x4b5f52
mov dword [esp + 0x308], edi
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x294], ebx
mov dword [esp + 0x154], ebp
mov eax, dword [esp + 0x26c]
mov ebp, eax
test eax, eax
je 0x4b5f2f
lea ebx, [esp + ecx*4 + 0x4e0]
lea esi, [esp + ecx*4 + 0x4a0]
mov eax, dword [esp + ecx*4 + 0x820]
mov edx, dword [esp + ebp*4 + 0x720]
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 [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 + 0x354]
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 0x4b5eb6
mov eax, dword [esp + 0x26c]
dec ecx
jne 0x4b5e9e
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
mov eax, dword [esp + 0x26c]
add esi, dword [esp + 0xa4]
lea edx, [edi + eax]
lea edi, [edi + eax - 1]
mov eax, dword [esp + edx*4 + 0x4a0]
lea ecx, [esp + edx*4 + 0x820]
mov dword [esp + 0xa0], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x4b60cd
mov eax, edi
mov dword [esp + 0xac], 0
shr eax, 1
mov dword [esp + 0x224], eax
je 0x4b760b
xor eax, eax
lea ecx, [esp + edi*4 + 0x4a0]
mov dword [esp + 0x80], ecx
lea ecx, [esp + edi*4 + 0x4e0]
mov dword [esp + 0x220], ecx
lea ecx, [esp + edi*4 + 0x820]
mov dword [esp + 0x84], edx
mov dword [esp + 0x308], edi
mov dword [esp + 0x294], ebx
mov dword [esp + 0x154], ebp
mov dword [esp + 0x1a8], esi
mov edi, eax
mov ebp, ecx
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0xac]
mov esi, dword [esp + 0x220]
inc eax
mov ecx, dword [edi + ebx]
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 + ebx - 4]
add esi, ecx
cmp esi, ecx
mov dword [edi + ebp - 4], esi
setb dl
add edi, 0xfffffff8
cmp eax, dword [esp + 0x224]
jb 0x4b5ffd
mov dword [esp + 0xac], edx
lea ecx, [eax + eax + 1]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
lea eax, [ecx - 1]
cmp eax, edi
jae 0x4b60c4
shl ecx, 2
neg ecx
mov dword [esp + 0x84], edx
lea edx, [esp + edi*4 + 0x4e0]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1a8], esi
lea esi, [esp + edi*4 + 0x4a0]
add eax, dword [ecx + edx + 4]
lea edx, [esp + edi*4 + 0x820]
add eax, dword [ecx + esi + 4]
mov dword [ecx + edx + 4], eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x1a8]
mov eax, dword [ecx]
jmp 0x4b60cd
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
test eax, eax
jne 0x4b60e8
dec edx
lea eax, [esp + edx*4 + 0x820]
cmp dword [eax], 0
je 0x4b60d1
mov dword [esp + 0xa0], eax
lea edi, [edx - 1]
mov eax, dword [esp + 0x824]
test eax, eax
jle 0x4b61ae
add eax, eax
dec esi
mov dword [esp + 0x824], eax
cmp edx, 2
jb 0x4b61ae
lea ecx, [edx - 1]
shr ecx, 1
je 0x4b7601
mov dword [esp + 0x1a8], esi
xor eax, eax
mov dword [esp + 0x294], ebx
mov dword [esp + 0x154], ebp
mov ebx, dword [esp + eax*8 + 0x828]
mov ebp, ebx
shr ebp, 0x1f
add ebx, ebx
or dword [esp + eax*8 + 0x824], ebp
mov ebp, dword [esp + eax*8 + 0x82c]
mov esi, ebp
shr esi, 0x1f
add ebp, ebp
or ebx, esi
mov dword [esp + eax*8 + 0x828], ebx
mov dword [esp + eax*8 + 0x82c], ebp
inc eax
cmp eax, ecx
jb 0x4b612c
mov esi, dword [esp + 0x1a8]
lea eax, [eax + eax + 1]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
lea ecx, [eax - 1]
cmp ecx, edi
jae 0x4b61ae
mov ecx, dword [esp + eax*4 + 0x824]
mov dword [esp + 0x84], edx
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x820], edx
mov dword [esp + eax*4 + 0x824], ecx
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0xa0]
cmp dword [eax], 0
je 0x4b61bc
mov edi, edx
mov edx, dword [esp + 0x1f0]
shr edx, 5
cmp edi, edx
jb 0x4b625f
mov edi, edx
mov eax, edx
mov edx, dword [esp + eax*4 + 0x824]
shr edx, 0x1f
mov ecx, eax
lea ecx, [esp + ecx*4 + 0x820]
mov eax, dword [ecx]
add eax, edx
mov dword [esp + 0xc], eax
cmp eax, edx
jae 0x4b6247
mov eax, edi
mov edi, dword [esp + 0xc]
mov dword [ecx], edi
mov dword [esp + 0x820], 0
lea ecx, [esp + eax*4 + 0x81c]
lea edi, [eax - 1]
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x4b6224
dec edi
lea ecx, [esp + edi*4 + 0x820]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b6215
test edi, edi
je 0x4b622d
inc eax
mov dword [ecx], eax
jmp 0x4b6266
mov dword [esp + 0x824], 0x80000000
inc esi
mov edi, 1
lea ecx, [esp + 0x824]
jmp 0x4b6266
mov dword [ecx], eax
cmp dword [esp + 0xc], 0
jne 0x4b6266
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b6250
jmp 0x4b6266
lea ecx, [esp + edi*4 + 0x820]
cmp dword [esp + 0x228], 0
je 0x4b67c7
mov eax, dword [esp + 0x228]
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 + 0x7a0]
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 + 0x420], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + eax*4 + 0x424], edx
mov eax, dword [esp + 0x228]
lea eax, [eax - 1]
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x308], edi
xor edi, edi
mov dword [esp + 0x294], ebx
mov ebx, ecx
mov dword [esp + 0x154], ebp
mov ecx, eax
mov esi, dword [esp + 0x78]
mov edx, dword [ebx]
mov dword [esp + 0x24c], edx
mov edx, dword [esp + ecx*4 + 0x7a0]
mov dword [esp + esi*4 + 0x460], 0
mov dword [esp + 0x250], edx
mov eax, dword [esp + 0x24c]
mul dword [esp + 0x250]
mov dword [esp + 0x254], eax
mov dword [esp + 0x258], edx
mov edx, dword [esp + 0x254]
mov eax, edi
mov ebp, dword [esp + esi*4 + 0x420]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x420], ebp
setb al
dec esi
add eax, dword [esp + 0x258]
mov dword [esp + esi*4 + 0x420], eax
dec ecx
jne 0x4b62f5
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
mov eax, dword [esp + 0x78]
mov dword [esp + eax*4 + 0x460], 0
dec eax
js 0x4b6451
mov eax, dword [esp + 0x78]
shr eax, 1
mov dword [esp + 0x7c], eax
je 0x4b75f7
mov ecx, dword [esp + 0x78]
xor eax, eax
mov dword [esp + 0x294], ebx
mov dword [esp + 0x154], ebp
lea edx, [esp + ecx*4 + 0x41c]
mov dword [esp + 0x58], edx
lea edx, [esp + ecx*4 + 0x45c]
mov dword [esp + 0x54], edx
mov dword [esp + 0x1a8], 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 0x4b63ea
mov esi, dword [esp + 0x1a8]
lea edx, [eax + eax + 1]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x78]
jae 0x4b6451
shl edx, 2
xor eax, eax
mov dword [esp + 0x308], edi
neg edx
mov edi, dword [esp + 0x78]
lea ecx, [esp + edi*4 + 0x45c]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + edi*4 + 0x41c]
mov dword [edx + ecx + 4], eax
mov edi, dword [esp + 0x308]
mov ecx, edi
dec ecx
je 0x4b6531
mov dword [esp + 0x308], edi
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x294], ebx
mov dword [esp + 0x154], ebp
mov eax, dword [esp + 0x228]
mov ebp, eax
test eax, eax
je 0x4b650e
lea ebx, [esp + ecx*4 + 0x460]
lea esi, [esp + ecx*4 + 0x420]
mov eax, dword [esp + ecx*4 + 0x820]
mov edx, dword [esp + ebp*4 + 0x7a0]
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 [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 + 0x344]
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 0x4b6495
mov eax, dword [esp + 0x228]
dec ecx
jne 0x4b647d
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
mov ebp, dword [esp + 0x154]
mov eax, dword [esp + 0x228]
add esi, ebp
mov edx, dword [esp + 0x74]
lea edi, [edi + eax - 1]
mov eax, dword [esp + edx*4 + 0x420]
lea ecx, [esp + edx*4 + 0x820]
mov dword [esp + 0x5c], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x4b6653
mov eax, edi
mov dword [esp + 0x60], 0
shr eax, 1
je 0x4b75ed
xor ecx, ecx
lea edx, [esp + edi*4 + 0x420]
mov dword [esp + 0x1c], edx
lea ebp, [esp + edi*4 + 0x820]
lea edx, [esp + edi*4 + 0x460]
mov dword [esp + 0x198], eax
mov dword [esp + 0x308], edi
mov dword [esp + 0x294], ebx
mov dword [esp + 0x19c], edx
mov dword [esp + 0x1a8], esi
mov edi, ecx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x19c]
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 + 0x198]
jb 0x4b65b9
mov dword [esp + 0x60], eax
lea edx, [ecx + ecx + 1]
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
lea eax, [edx - 1]
cmp eax, edi
jae 0x4b664d
shl edx, 2
lea ecx, [esp + edi*4 + 0x460]
neg edx
lea ebp, [esp + edi*4 + 0x420]
mov eax, dword [esp + 0x60]
add eax, dword [edx + ecx + 4]
lea ecx, [esp + edi*4 + 0x820]
add eax, dword [edx + ebp + 4]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [edx]
jmp 0x4b6653
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
test eax, eax
jne 0x4b6675
mov edx, dword [esp + 0x74]
dec edx
lea eax, [esp + edx*4 + 0x820]
cmp dword [eax], 0
je 0x4b665b
mov dword [esp + 0x74], edx
mov dword [esp + 0x5c], eax
mov eax, edx
lea edi, [eax - 1]
mov eax, dword [esp + 0x824]
test eax, eax
jle 0x4b6713
add eax, eax
dec esi
mov dword [esp + 0x824], eax
cmp dword [esp + 0x74], 2
jb 0x4b6713
mov eax, dword [esp + 0x74]
lea edx, [eax - 1]
shr edx, 1
je 0x4b75e3
mov dword [esp + 0x294], ebx
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x828]
mov ebx, eax
shr ebx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x824], ebx
mov ebx, dword [esp + ecx*8 + 0x82c]
mov ebp, ebx
shr ebp, 0x1f
add ebx, ebx
or eax, ebp
mov dword [esp + ecx*8 + 0x828], eax
mov dword [esp + ecx*8 + 0x82c], ebx
inc ecx
cmp ecx, edx
jb 0x4b66ad
mov ebx, dword [esp + 0x294]
lea ecx, [ecx + ecx + 1]
lea eax, [ecx - 1]
cmp eax, edi
jae 0x4b6713
mov edx, dword [esp + ecx*4 + 0x824]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x820], eax
mov dword [esp + ecx*4 + 0x824], edx
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x1f0]
shr ebp, 5
cmp dword [eax], 0
je 0x4b672a
mov edi, dword [esp + 0x74]
cmp edi, ebp
jb 0x4b67c0
mov edi, ebp
mov eax, dword [esp + ebp*4 + 0x824]
shr eax, 0x1f
lea ecx, [esp + ebp*4 + 0x820]
mov edx, dword [ecx]
add edx, eax
cmp edx, eax
jae 0x4b67ab
mov dword [ecx], edx
lea ecx, [esp + ebp*4 + 0x81c]
mov dword [esp + 0x820], 0
lea edi, [ebp - 1]
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x4b6788
mov dword [esp + 0x294], ebx
dec edi
lea ecx, [esp + edi*4 + 0x820]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b6772
mov ebx, dword [esp + 0x294]
test edi, edi
je 0x4b6791
inc eax
mov dword [ecx], eax
jmp 0x4b67c7
mov dword [esp + 0x824], 0x80000000
inc esi
mov edi, 1
lea ecx, [esp + 0x824]
jmp 0x4b67c7
mov dword [ecx], edx
test edx, edx
jne 0x4b67c7
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b67b1
jmp 0x4b67c7
lea ecx, [esp + edi*4 + 0x820]
test ebx, ebx
je 0x4b6cbc
mov eax, dword [ecx]
lea ebp, [ebx + edi - 1]
mov edx, dword [esp + ebx*4 + 0x760]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov eax, dword [esp + 0x120]
mul dword [esp + 0x124]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], edx
mov eax, dword [esp + 0x12c]
mov dword [esp + ebp*4 + 0x5a0], eax
mov eax, ebx
mov edx, dword [esp + 0x128]
mov dword [esp + ebp*4 + 0x5a4], edx
dec eax
je 0x4b68c9
mov dword [esp + 0x308], edi
mov dword [esp + 0x1a8], esi
xor esi, esi
mov dword [esp + 0x294], ebx
mov ebx, ecx
mov ecx, eax
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x760]
mov dword [esp + ebp*4 + 0x5e0], 0
mov dword [esp + 0x2b4], edx
mov dword [esp + 0x2b8], edi
mov eax, dword [esp + 0x2b4]
mul dword [esp + 0x2b8]
mov dword [esp + 0x2bc], eax
mov dword [esp + 0x2c0], edx
mov edx, dword [esp + 0x2bc]
mov eax, esi
mov edi, dword [esp + ebp*4 + 0x5a0]
add edi, edx
cmp edi, edx
mov dword [esp + ebp*4 + 0x5a0], edi
setb al
dec ebp
add eax, dword [esp + 0x2c0]
mov dword [esp + ebp*4 + 0x5a0], eax
dec ecx
jne 0x4b6846
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
mov eax, ebp
mov dword [esp + ebp*4 + 0x5e0], 0
dec eax
js 0x4b6971
mov edx, ebp
shr edx, 1
je 0x4b75d9
xor ecx, ecx
lea eax, [esp + ebp*4 + 0x59c]
mov dword [esp + 0x118], eax
lea eax, [esp + ebp*4 + 0x5dc]
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x294], ebx
mov dword [esp + 0x308], edi
xor edi, edi
mov ebx, ecx
mov esi, dword [esp + 0x118]
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 0x4b691e
mov edi, dword [esp + 0x308]
lea edx, [ecx + ecx + 1]
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x294]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x4b6971
shl edx, 2
lea ecx, [esp + ebp*4 + 0x5dc]
neg edx
lea ebp, [esp + ebp*4 + 0x59c]
xor eax, eax
mov dword [edx + ecx + 4], eax
mov dword [edx + ebp + 4], eax
mov ecx, edi
dec ecx
je 0x4b6a37
mov dword [esp + 0x308], edi
mov dword [esp + 0x1a8], esi
mov edi, ebx
test ebx, ebx
je 0x4b6a22
mov dword [esp + 0x294], ebx
lea esi, [esp + ecx*4 + 0x5e0]
lea ebp, [esp + ecx*4 + 0x5a0]
mov eax, dword [esp + ecx*4 + 0x820]
mov edx, dword [esp + edi*4 + 0x760]
mov dword [esp + 0x368], eax
mov dword [esp + 0x36c], edx
mov eax, dword [esp + 0x368]
mul dword [esp + 0x36c]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], edx
mov edx, dword [esp + 0x370]
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 + 0x374]
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 0x4b69a7
mov ebx, dword [esp + 0x294]
dec ecx
jne 0x4b6988
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
add esi, dword [esp + 0x150]
lea ecx, [edi + ebx]
mov eax, dword [esp + ecx*4 + 0x5a0]
lea edi, [edi + ebx - 1]
lea ebx, [esp + ecx*4 + 0x820]
mov dword [ebx], eax
cmp ecx, 1
je 0x4b6b78
mov ebp, edi
mov dword [esp + 0x11c], 0
shr ebp, 1
je 0x4b75cf
xor edx, edx
lea eax, [esp + edi*4 + 0x5a0]
mov dword [esp + 0xc8], eax
lea eax, [esp + edi*4 + 0x5e0]
mov dword [esp + 0x244], ebp
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x308], edi
mov dword [esp + 0x248], eax
lea eax, [esp + edi*4 + 0x820]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x1a8], esi
mov edi, edx
mov ebp, dword [esp + 0xc8]
mov ecx, dword [esp + 0x11c]
mov esi, dword [esp + 0x248]
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 + 0x244]
jb 0x4b6acb
mov dword [esp + 0x11c], ecx
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
lea eax, [edx - 1]
cmp eax, edi
jae 0x4b6b76
shl edx, 2
lea ebp, [esp + edi*4 + 0x5a0]
neg edx
mov dword [esp + 0xc4], ecx
lea ecx, [esp + edi*4 + 0x5e0]
mov eax, dword [esp + 0x11c]
add eax, dword [edx + ecx + 4]
lea ecx, [esp + edi*4 + 0x820]
add eax, dword [edx + ebp + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc4]
jmp 0x4b6b78
mov eax, dword [ebx]
test eax, eax
jne 0x4b6b8c
dec ecx
lea ebx, [esp + ecx*4 + 0x820]
cmp dword [ebx], 0
je 0x4b6b7c
lea edi, [ecx - 1]
mov eax, dword [esp + 0x824]
test eax, eax
jle 0x4b6c36
add eax, eax
dec esi
mov dword [esp + 0x824], eax
cmp ecx, 2
jb 0x4b6c36
lea edx, [ecx - 1]
shr edx, 1
je 0x4b75c5
mov dword [esp + 0x308], edi
xor ebp, ebp
mov dword [esp + 0x1a8], esi
mov eax, dword [esp + ebp*8 + 0x828]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ebp*8 + 0x824], esi
mov esi, dword [esp + ebp*8 + 0x82c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ebp*8 + 0x828], eax
mov dword [esp + ebp*8 + 0x82c], esi
inc ebp
cmp ebp, edx
jb 0x4b6bc9
mov edi, dword [esp + 0x308]
lea eax, [ebp + ebp + 1]
mov esi, dword [esp + 0x1a8]
lea edx, [eax - 1]
cmp edx, edi
jae 0x4b6c36
mov ebp, dword [esp + eax*4 + 0x824]
mov edx, ebp
shr edx, 0x1f
add ebp, ebp
or dword [esp + eax*4 + 0x820], edx
mov dword [esp + eax*4 + 0x824], ebp
cmp dword [ebx], 0
mov ebx, dword [esp + 0x1f0]
je 0x4b6c44
mov edi, ecx
shr ebx, 5
cmp edi, ebx
jb 0x4b6cb5
mov edi, ebx
mov eax, dword [esp + ebx*4 + 0x824]
shr eax, 0x1f
lea ecx, [esp + ebx*4 + 0x820]
mov edx, dword [ecx]
add edx, eax
cmp edx, eax
jae 0x4b6ca0
mov dword [ecx], edx
lea ecx, [esp + ebx*4 + 0x81c]
mov dword [esp + 0x820], 0
lea edi, [ebx - 1]
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x4b6c93
dec edi
lea ecx, [esp + edi*4 + 0x820]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b6c84
test edi, edi
jne 0x4b4bd5
jmp 0x4b4bdd
mov dword [ecx], edx
test edx, edx
jne 0x4b6cbc
dec edi
lea ecx, [esp + edi*4 + 0x820]
cmp dword [ecx], 0
je 0x4b6ca6
jmp 0x4b6cbc
lea ecx, [esp + edi*4 + 0x820]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x1dc]
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x1bc], ebx
lea ebx, [edi + ecx + 1]
mov edx, dword [esp + eax*4 + 0x7e0]
lea ecx, [ebx - 1]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1b8], edx
mov eax, dword [esp + 0x1b8]
mul dword [esp + 0x1bc]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], edx
mov ebp, dword [esp + 0x1c0]
lea eax, [esp + ebx*4 + 0x69c]
mov dword [eax + 4], ebp
mov ebp, edi
mov edx, dword [esp + 0x1c4]
mov dword [eax], edx
dec ebp
je 0x4b6de2
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x308], edi
mov dword [esp + 0x1a8], esi
xor esi, esi
mov ebx, dword [esp + 0x1d0]
mov eax, dword [esp + ebx*4 + 0x7e0]
mov edx, dword [esp + ebp*4 + 0x820]
mov dword [esp + ecx*4 + 0x6e0], 0
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], edx
mov eax, dword [esp + 0x30c]
mul dword [esp + 0x310]
mov dword [esp + 0x314], eax
mov dword [esp + 0x318], edx
mov edx, dword [esp + 0x314]
mov eax, esi
mov edi, dword [esp + ecx*4 + 0x6a0]
add edi, edx
cmp edi, edx
mov dword [esp + ecx*4 + 0x6a0], edi
setb al
dec ecx
add eax, dword [esp + 0x318]
mov dword [esp + ecx*4 + 0x6a0], eax
dec ebp
jne 0x4b6d53
mov eax, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x1ac]
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
mov edx, ecx
mov dword [esp + ecx*4 + 0x6e0], 0
dec edx
js 0x4b6eb6
mov edx, ecx
shr edx, 1
mov dword [esp + 0x1cc], edx
je 0x4b75bb
xor edx, edx
lea ebp, [esp + ecx*4 + 0x69c]
mov dword [esp + 0x1a4], ebp
lea ebp, [esp + ecx*4 + 0x6dc]
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x308], edi
xor edi, edi
mov ecx, edx
mov ebx, ebp
mov ebp, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1cc]
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 0x4b6e4e
mov ecx, dword [esp + 0x1b4]
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x1ac]
mov edi, dword [esp + 0x308]
mov esi, dword [esp + 0x1a8]
lea ebp, [edx - 1]
cmp ebp, ecx
jae 0x4b6eb6
shl edx, 2
lea ebp, [esp + ecx*4 + 0x6dc]
neg edx
lea ecx, [esp + ecx*4 + 0x69c]
mov dword [esp + 0x1b0], eax
xor eax, eax
mov dword [edx + ebp + 4], eax
mov dword [edx + ecx + 4], eax
mov eax, dword [esp + 0x1b0]
cmp dword [esp + 0x1dc], 0
je 0x4b6f96
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1a8], esi
mov ecx, dword [esp + 0x1dc]
mov esi, edi
test edi, edi
je 0x4b6f7a
mov dword [esp + 0x308], edi
lea ebx, [esp + ecx*4 + 0x6e0]
lea ebp, [esp + ecx*4 + 0x6a0]
mov eax, dword [esp + ecx*4 + 0x7e0]
mov edx, dword [esp + esi*4 + 0x820]
mov dword [esp + 0x388], eax
mov dword [esp + 0x38c], edx
mov eax, dword [esp + 0x388]
mul dword [esp + 0x38c]
mov dword [esp + 0x390], eax
mov dword [esp + 0x394], edx
mov edx, dword [esp + 0x390]
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 + 0x394]
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 0x4b6eff
mov edi, dword [esp + 0x308]
dec ecx
jne 0x4b6ee0
mov eax, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x1ac]
mov esi, dword [esp + 0x1a8]
mov edx, dword [esp + 0x1d4]
mov ebp, dword [esp + ebx*4 + 0x6a0]
mov dword [esp + ebx*4 + 0x7e0], ebp
lea edx, [esi + edx - 0x3fe]
cmp ebx, 1
je 0x4b7090
mov esi, dword [esp + 0x1c8]
xor ecx, ecx
shr esi, 1
je 0x4b75b1
xor ebp, ebp
lea edi, [esp + ebx*4 + 0x7dc]
mov dword [esp + 0x1a0], edi
lea edi, [esp + ebx*4 + 0x6dc]
mov dword [esp + 0x304], edi
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x300], esi
mov dword [esp + 0x2f4], edx
mov edi, ebp
mov ebx, dword [esp + 0x1a0]
mov esi, dword [esp + 0x304]
inc ebp
mov edx, dword [edi + eax]
add ecx, dword [edi + esi]
add edx, ecx
cmp edx, ecx
mov ecx, 0
mov dword [edi + ebx], edx
mov edx, ecx
setb dl
add edx, dword [edi + esi - 4]
mov esi, dword [edi + eax - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ebx - 4], esi
setb cl
add edi, 0xfffffff8
cmp ebp, dword [esp + 0x300]
jb 0x4b7008
mov ebx, dword [esp + 0x1ac]
lea ebp, [ebp + ebp + 1]
mov edx, dword [esp + 0x2f4]
lea esi, [ebp - 1]
cmp esi, dword [esp + 0x1c8]
jae 0x4b7089
shl ebp, 2
lea esi, [esp + ebx*4 + 0x6dc]
sub eax, ebp
neg ebp
add ecx, dword [ebp + esi + 4]
add ecx, dword [eax + 4]
lea eax, [esp + ebx*4 + 0x7dc]
mov dword [ebp + eax + 4], ecx
mov ebp, dword [eax + 4]
jmp 0x4b7090
mov ebp, dword [esp + ebx*4 + 0x7e0]
test ebp, ebp
jne 0x4b75a5
dec ebx
lea ebp, [esp + ebx*4 + 0x7e0]
cmp dword [ebp], 0
je 0x4b7098
mov eax, dword [esp + 0x7e4]
test eax, eax
jle 0x4b7143
add eax, eax
dec edx
mov dword [esp + 0x7e4], eax
cmp ebx, 2
jb 0x4b7143
lea esi, [ebx - 1]
shr esi, 1
je 0x4b759b
mov dword [esp + 0x2f4], edx
xor edi, edi
mov eax, dword [esp + edi*8 + 0x7e8]
mov edx, eax
shr edx, 0x1f
add eax, eax
or dword [esp + edi*8 + 0x7e4], edx
mov edx, dword [esp + edi*8 + 0x7ec]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or eax, ecx
mov dword [esp + edi*8 + 0x7e8], eax
mov dword [esp + edi*8 + 0x7ec], edx
inc edi
cmp edi, esi
jb 0x4b70d8
mov edx, dword [esp + 0x2f4]
lea esi, [edi + edi + 1]
lea eax, [ebx - 1]
lea edi, [esi - 1]
cmp edi, eax
jae 0x4b7146
mov ecx, dword [esp + esi*4 + 0x7e4]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or dword [esp + esi*4 + 0x7e0], edi
mov dword [esp + esi*4 + 0x7e4], ecx
jmp 0x4b7146
lea eax, [ebx - 1]
cmp dword [ebp], 0
je 0x4b3e3a
mov eax, ebx
jmp 0x4b3e3a
mov ecx, eax
shr ecx, 1
je 0x4b7189
xor ebx, ebx
mov edx, 0x30
mov byte [esi + ebx*2], dl
mov byte [esi + ebx*2 + 1], dl
inc ebx
cmp ebx, ecx
jb 0x4b7164
lea ecx, [ebx + ebx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x4b348c
mov byte [ecx + esi - 1], 0x30
jmp 0x4b348c
mov ecx, 1
jmp 0x4b7174
call fcn.004cf95b
mov dword [esp], ebp
mov dword [esp + 8], ebx
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x1e4]
mov esi, dword [esp + 0x2f8]
mov edx, dword [esp]
cmp edx, dword [esp + 0x18]
jae 0x4b71c8
inc edx
mov dword [esp], edx
mov ecx, dword [esp + edx*4 + 0x7e0]
mov dword [esp + 0x1c], ecx
jmp 0x4b71d0
mov dword [esp + 0x1c], 0
mov edx, dword [esp]
lea ecx, [edx + 1]
cmp ecx, dword [esp + 0x18]
ja 0x4b723f
mov edx, dword [esp + 0x18]
sub edx, ecx
inc edx
mov dword [esp + 0x18], edx
shr edx, 1
mov dword [esp + 0xc], edx
mov edx, 0
je 0x4b7337
mov ebx, dword [esp]
xor ecx, ecx
mov dword [esp + 0x2f8], esi
mov esi, dword [esp + 0xc]
lea ebx, [esp + ebx*4 + 0x7e4]
or edx, dword [ebx + ecx*8]
or edx, dword [ebx + ecx*8 + 4]
inc ecx
cmp ecx, esi
jb 0x4b720f
mov esi, dword [esp + 0x2f8]
lea ecx, [ecx + ecx + 1]
lea ebx, [ecx - 1]
cmp ebx, dword [esp + 0x18]
jae 0x4b7241
mov ebx, dword [esp]
lea ecx, [ecx + ebx + 1]
or edx, dword [esp + ecx*4 + 0x7dc]
jmp 0x4b7241
xor edx, edx
mov ebx, dword [esp + 0x87c]
shr ebx, 0x1c
mov dword [esp + 4], eax
and ebx, 0xfffffff8
mov eax, dword [esp + 8]
and eax, 1
mov dword [esp + 0x1e4], ebp
mov ebp, dword [esp + 0x1c]
test ebp, 0x7fffffff
lea ecx, [ebx + eax*2]
mov eax, 0
mov ebx, eax
setne bl
or edx, ebx
mov edx, dword [esp + 0x210]
setne al
shr ebp, 0x1f
add ecx, ebp
mov ebp, dword [esp + 0x1e4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x10]
shr edx, cl
add eax, 0xfffffc02
mov ecx, dword [esp + 0x898]
and edx, 1
mov dword [ecx], eax
mov eax, dword [esp + 4]
test edx, edx
je 0x4b72dd
movsx edx, byte [edi - 1]
cmp edx, dword [esp + 0x14]
jne 0x4b72c8
mov ecx, dword [esp + 0x14]
dec edi
movsx edx, byte [edi - 1]
cmp edx, ecx
je 0x4b72bf
cmp edx, 0x39
je 0x4b72d2
mov eax, 1
add edx, eax
mov byte [edi - 1], dl
cmp edi, ebp
je 0x4b7341
jmp 0x4b72eb
cmp dword [esp + 0x280], 0
jle 0x4b33da
test dword [esp + 0x888], 0x80
je 0x4b7307
cmp byte [edi - 1], 0x30
jne 0x4b7330
dec edi
cmp byte [edi - 1], 0x30
je 0x4b72fe
jmp 0x4b7330
mov edx, dword [esp + 0x280]
sub edx, edi
lea ebx, [edx + ebp - 1]
test ebx, ebx
jl 0x4b7330
lea eax, [ebx + 1]
cmp ebx, 0x60
jle 0x4b7384
push eax
push 0x30
push edi
call fcn.004ca8b0
add esp, 0xc
lea edi, [edi + ebx + 1]
xor edx, edx
jmp 0x4b36d9
mov ecx, 1
jmp 0x4b7226
mov edx, dword [esp + 0x898]
dec ebp
inc dword [edx]
cmp dword [esp + 0x1e0], 0
je 0x4b7359
mov byte [ebp], 0x38
test byte [esp + 0x888], 2
je 0x4b72eb
mov ecx, dword [esp + 0x280]
inc ecx
mov edx, dword [esp + 0x880]
cmp ecx, edx
jl 0x4b7378
mov ecx, edx
mov dword [esp + 0x280], ecx
jmp 0x4b72eb
mov edx, eax
shr edx, 1
je 0x4b73c6
mov dword [esp + 0x2f8], esi
xor ecx, ecx
mov esi, edx
mov edx, 0x30
mov byte [edi + ecx*2], dl
mov byte [edi + ecx*2 + 1], dl
inc ecx
cmp ecx, esi
jb 0x4b739a
mov esi, dword [esp + 0x2f8]
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x4b732c
mov byte [ecx + edi - 1], 0x30
jmp 0x4b732c
mov ecx, 1
jmp 0x4b73b1
mov dword [esp], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 8], ebx
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x1e4]
mov esi, dword [esp + 0x2f8]
test ecx, ecx
je 0x4b71ae
jmp 0x4b71d0
cmp dword [esp + 0x178], 0
jne 0x4b7437
cmp dword [esp + 0x174], 0
je 0x4b7415
cmp dword [esp + 0x280], 0
js 0x4b7437
cmp dword [esp + 0x21c], 0
jne 0x4b7450
mov edx, dword [esp + 0x898]
mov ebp, ecx
mov dword [edx], ebp
neg ebp
je 0x4b3aac
jmp 0x4b3b97
fstp st(0)
mov edx, dword [esp + 0x898]
mov eax, ecx
mov esi, dword [esp + 0x2f8]
mov dword [edx], eax
jmp 0x4b33da
fstp st(0)
mov ecx, dword [esp + 0x1e8]
add ecx, 4
mov edx, dword [esp + 0x210]
shr edx, cl
mov ebp, dword [esp + 0x1e4]
mov esi, dword [esp + 0x2f8]
test dl, 1
je 0x4b749f
mov edx, dword [esp + 0x27c]
xor eax, eax
test edx, edx
mov ecx, dword [esp + 0x898]
sete al
mov edi, ebp
mov byte [esi], 0x31
sub eax, edx
mov dword [ecx], eax
xor edx, edx
mov ebp, esi
jmp 0x4b36d9
mov edx, dword [esp + 0x898]
mov eax, dword [esp + 0x180]
mov dword [edx], eax
jmp 0x4b33da
mov edx, 1
jmp 0x4b40af
lea ecx, [esp + 0x828]
jmp 0x4b6cbc
mov ebx, 1
jmp 0x4b4b45
mov ecx, 1
jmp 0x4b4a55
mov eax, 1
jmp 0x4b4890
mov ecx, 8
lea ebp, [esp + 0x828]
jmp 0x4b4764
mov ebp, eax
mov eax, ebp
neg eax
mov ecx, eax
sar ecx, 3
movzx edx, word [ecx*2 + 0x50b5a0]
lea ebx, [ecx + 1]
shr edx, 5
cmp edx, eax
jl 0x4b7518
mov ebx, ecx
movzx edx, word [ebx*2 + 0x50b5a0]
mov eax, edx
and eax, 0x1f
shr edx, 5
add edx, ebp
movsx esi, word [eax*2 + 0x50b6fa]
mov edi, dword [eax*8 + 0x50b524]
mov eax, dword [eax*8 + 0x50b520]
mov dword [esp + 0x144], esi
mov dword [esp + 0x7a4], edi
jmp 0x4b4710
mov edx, 1
jmp 0x4b52ba
mov edx, 1
jmp 0x4b5192
mov edx, 1
jmp 0x4b4f5d
mov edx, 1
jmp 0x4b593a
mov edx, 1
jmp 0x4b583c
mov edx, 1
jmp 0x4b5646
lea ecx, [esp + 0x830]
jmp 0x4b67c7
mov esi, 1
jmp 0x4b711b
lea ebp, [esp + ebx*4 + 0x7e0]
jmp 0x4b70a6
mov ebp, 1
jmp 0x4b7058
mov edx, 1
jmp 0x4b6e84
mov eax, 1
jmp 0x4b6c13
mov edx, 1
jmp 0x4b6b30
mov edx, 1
jmp 0x4b694d
mov ecx, 1
jmp 0x4b66f0
mov edx, 1
jmp 0x4b6614
mov edx, 1
jmp 0x4b6419
mov eax, 1
jmp 0x4b617d
mov ecx, 1
jmp 0x4b6069
mov edx, 1
jmp 0x4b5e34
lea ecx, [esp + 0x828]
jmp 0x4b5c4a
mov ecx, 0x1b
jmp 0x4b5c0c
xor edx, edx
mov dword [esp + 0x728], edx
mov dword [esp + 0x724], edx
jmp 0x4b5c0c
mov eax, dword [0x50afcc]
xor esi, esi
mov edx, dword [0x50afc8]
mov ecx, dword [0x50afc4]
mov edi, dword [0x50afc0]
mov dword [esp + 0x728], esi
mov dword [esp + 0x724], esi
movsx esi, word [0x50b142]
mov dword [esp + 0x824], eax
mov dword [esp + 0x828], edx
mov dword [esp + 0x82c], ecx
lea ecx, [esp + 0x830]
mov dword [ecx], edi
mov edi, 4
jmp 0x4b6266
mov edx, ecx
neg edx
mov esi, edx
sar esi, 3
mov dword [esp + 0x228], 4
movzx ebp, word [esi*2 + 0x50aee0]
lea edi, [esi + 1]
shr ebp, 5
cmp ebp, edx
jl 0x4b76c8
mov edi, esi
movzx ebp, word [edi*2 + 0x50aee0]
mov eax, ebp
and eax, 0x1f
shr ebp, 5
add ecx, ebp
movsx ebp, word [eax*2 + 0x50b126]
shl eax, 4
mov edx, dword [eax + 0x50ae4c]
mov esi, dword [eax + 0x50ae48]
mov edi, dword [eax + 0x50ae44]
mov eax, dword [eax + 0x50ae40]
mov dword [esp + 0x7a4], edx
mov dword [esp + 0x7a8], esi
mov dword [esp + 0x7ac], edi
mov dword [esp + 0x7b0], eax
jmp 0x4b5ba0
mov edx, dword [esp + 0x1e8]
mov eax, 1
mov ebp, dword [esp + 0x1e4]
mov esi, dword [esp + 0x2f8]
mov dword [esp + 0x14], 0x39
lea ecx, [edx + ebx*2 + 1]
mov edx, dword [esp + 0x210]
shr edx, cl
and edx, 1
jmp 0x4b72ad
mov edx, dword [esp + 0x1ec]
mov eax, 1
mov ebp, dword [esp + 0x1e4]
mov esi, dword [esp + 0x2f8]
mov dword [esp + 0x14], 0x39
jmp 0x4b72ad
xor eax, eax
test ebp, ebp
setge al
mov dword [esp + 0x1fc], eax
jmp 0x4b442b
mov dword [esp + 0x18c], 1
jmp 0x4b4399
mov ebp, 1
jmp 0x4b3f21
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x7e4], eax
jmp 0x4b3447