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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x830
xor esi, esi
mov eax, dword [esp + 0x84c]
mov dword [esp + 0x250], eax
mov ecx, dword [esp + 0x848]
mov edx, dword [0x543b10]
xor edx, esp
mov dword [esp + 0x82c], edx
mov ebp, dword [esp + 0x854]
mov dword [esp + 0x66c], esi
mov dword [esp + 0x674], esi
mov dword [esp + 0x678], esi
mov dword [esp + 0x67c], esi
mov dword [esp + 0x680], esi
mov dword [esp + 0x684], esi
mov dword [esp + 0x688], esi
mov dword [esp + 0x68c], esi
mov dword [esp + 0x690], esi
mov dword [esp + 0x694], esi
mov dword [esp + 0x698], esi
mov dword [esp + 0x69c], esi
mov dword [esp + 0x6a0], esi
mov dword [esp + 0x6a4], esi
mov dword [esp + 0x6a8], esi
mov dword [esp + 0x254], ecx
test ecx, ecx
jle 0x4bdecd
mov eax, dword [esp + 0x850]
mov ecx, eax
shr ecx, 0x16
and ecx, 7
test eax, 0x80000000
jne 0x4b9edc
test cl, 1
jne 0x4b9edc
xor ecx, ecx
mov edi, dword [esp + 0x850]
mov ebx, edi
and ebx, 0x80002000
xor edx, edx
mov eax, edi
cmp ebx, 0x80002000
mov ebx, edx
sete bl
and eax, 0x80001000
cmp eax, 0x80001000
mov eax, edx
sete al
and edi, 0x80000800
cmp edi, 0x80000800
sete dl
shl ebx, 0xa
shl eax, 9
shl edx, 8
or ebx, eax
or ebx, edx
mov eax, ecx
bts ebx, ecx
and eax, 2
test cl, 4
je 0x4b9f49
test eax, eax
mov eax, 0xaaaa
jne 0x4b9f40
mov eax, 0xfa
mov dword [esp + 0x1d0], eax
jmp 0x4b9f70
test eax, eax
je 0x4b9f5a
mov dword [esp + 0x1d0], 0xfa00
jmp 0x4b9f70
mov eax, 0xa8a8
test cl, 1
je 0x4b9f69
mov eax, 0
mov dword [esp + 0x1d0], eax
mov edi, dword [esp + 0x844]
mov ecx, edi
and ecx, 0x80000000
mov edx, edi
xor edx, ecx
mov eax, edx
mov dword [esp], edx
fld dword [esp]
shr eax, 7
add eax, 0xff810000
fstp dword [esp + 0x244]
mov dword [esp + 0xc], edx
mov dword [esp + 0x24c], edx
mov dword [esp + 0x248], edx
and edi, 0x7f800000
jne 0x4ba158
test edx, edx
jne 0x4b9fe9
mov dword [esp + 0x670], 0
test ecx, ecx
je 0x4b9fda
mov eax, dword [esp + 0x864]
mov dword [eax], 0xffffffff
jmp 0x4ba025
mov eax, dword [esp + 0x864]
mov dword [eax], 1
jmp 0x4ba025
test ecx, ecx
je 0x4b9ffc
mov eax, dword [esp + 0x864]
mov dword [eax], 0xfffffffe
jmp 0x4ba009
mov eax, dword [esp + 0x864]
mov dword [eax], 2
test dword [esp + 0x850], 0x10000000
je 0x4ba117
mov dword [esp + 0x670], 0
test dword [esp + 0x850], 0x80
je 0x4ba03f
mov dword [esp + 0x250], 1
jmp 0x4ba0b2
test byte [esp + 0x850], 2
je 0x4ba06f
mov eax, dword [esp + 0x250]
inc eax
mov dword [esp + 0x250], eax
cmp eax, dword [esp + 0x848]
jle 0x4ba088
mov eax, dword [esp + 0x848]
mov dword [esp + 0x254], eax
mov edx, dword [esp + 0x254]
mov esi, ebp
lea eax, [edx - 1]
mov dword [esp + 0x250], eax
test edx, edx
jne 0x4ba0b9
jmp 0x4ba0e3
cmp dword [esp + 0x250], 0
jg 0x4ba0b2
mov edx, dword [esp + 0x860]
mov edi, ebp
mov byte [ebp], 0x30
lea esi, [ebp + 1]
mov dword [edx], 1
mov edx, 6
jmp 0x4ba4ae
dec dword [esp + 0x250]
mov edx, dword [esp + 0x250]
lea eax, [edx + 1]
cmp edx, 0x60
jle 0x4bd9ed
push eax
push 0x30
push ebp
call fcn.004ca8b0
add esp, 0xc
mov eax, dword [esp + 0x250]
lea esi, [ebp + eax + 1]
mov eax, dword [esp + 0x860]
mov edx, 0xb
test dword [esp + 0x850], 0x40000000
mov edi, dword [esp + 0x854]
mov dword [eax], 1
jne 0x4ba4ae
mov edx, 0
jmp 0x4ba4ae
fld dword [esp + 0x244]
mov eax, edx
and eax, 0x7f800000
fstp st(0)
shr eax, 0x17
je 0x4ba131
shl edx, 8
jmp 0x4ba143
shl edx, 9
xor eax, eax
test edx, edx
jle 0x4ba141
add edx, edx
inc eax
test edx, edx
jg 0x4ba13a
neg eax
shr edx, 0xf
shl eax, 0x10
movzx esi, dx
add eax, 0xff810000
or eax, esi
jmp 0x4ba2cd
cmp edi, 0x7f800000
jne 0x4ba2ad
mov dword [esp + 0x670], 0
cmp edx, 0x7f800000
jne 0x4ba208
test ecx, ecx
je 0x4ba18e
mov eax, dword [esp + 0x864]
mov dword [eax], 0xfffffffc
jmp 0x4ba19b
mov eax, dword [esp + 0x864]
mov dword [eax], 4
test ebx, 0x400
je 0x4ba1b9
test ebx, 0x200
je 0x4ba1b2
mov eax, str.INFINITY
jmp 0x4ba1be
mov eax, str.infinity
jmp 0x4ba1be
mov eax, str.Infinity
mov esi, ebp
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x4ba1d5
mov byte [esi], al
inc esi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x4ba1ca
mov ebx, dword [esp + 0x860]
mov edx, esi
mov ecx, dword [esp + 0x850]
sub edx, ebp
and ecx, 0x40000000
shr ecx, 0x1d
mov dword [ebx], edx
mov edx, 4
shl edx, cl
mov edi, dword [esp + 0x854]
add edx, 0xfffffffc
jmp 0x4ba4ae
test ebx, 0x400
je 0x4ba254
test edx, 0x400000
jne 0x4ba227
shr ecx, 0x1e
mov eax, 0x10
shr eax, cl
add eax, 0xfffffff6
jmp 0x4ba235
mov eax, 0xfffffffb
test ecx, ecx
jne 0x4ba235
mov eax, 5
mov edx, dword [esp + 0x864]
mov dword [edx], eax
test ebx, 0x200
je 0x4ba24d
mov eax, 0x50a960
jmp 0x4ba266
mov eax, 0x50a964
jmp 0x4ba266
mov eax, dword [esp + 0x864]
mov dword [eax], 0
mov eax, 0x50a968
mov esi, ebp
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x4ba27d
mov byte [esi], al
inc esi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x4ba272
mov ebx, dword [esp + 0x860]
mov ecx, esi
mov edx, 0xa
test dword [esp + 0x850], 0x40000000
mov edi, dword [esp + 0x854]
jne 0x4ba2a4
mov edx, 0
sub ecx, ebp
mov dword [ebx], ecx
jmp 0x4ba4ae
test ecx, ecx
je 0x4ba2c0
mov edx, dword [esp + 0x864]
mov dword [edx], 0xfffffffd
jmp 0x4ba2cd
mov edx, dword [esp + 0x864]
mov dword [edx], 3
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x184], edx
je 0x4ba529
fld dword [esp + 0x244]
and ebx, 0x200
mov eax, ebx
xor eax, 0x200
shr eax, 4
mov ecx, dword [esp + 0xc]
and ecx, 0x7f800000
fstp st(0)
lea edx, [eax + 0x46]
add eax, 8
mov dword [esp + 4], edx
shr ecx, 0x17
mov dword [esp], ecx
je 0x4ba32a
mov edx, dword [esp + 0xc]
or edx, 0xff800000
shl edx, 8
mov dword [esp + 0xc], edx
jmp 0x4ba356
mov edx, dword [esp + 0xc]
shl edx, 9
mov dword [esp + 0xc], edx
mov dword [esp], 0
test edx, edx
jle 0x4ba353
mov ecx, edx
mov edx, dword [esp]
add ecx, ecx
inc edx
test ecx, ecx
jg 0x4ba345
mov dword [esp], edx
mov dword [esp + 0xc], ecx
neg dword [esp]
mov esi, dword [esp + 0xc]
mov ecx, 8
mov edx, dword [esp + 0x848]
mov dword [esp + 0x670], esi
lea esi, [ebp + 1]
mov edi, esi
mov dword [esp + 0x1d4], edi
lea edx, [edx - 1]
mov byte [ebp], 0x30
mov dword [esp + 8], eax
mov dword [esp + 0x2d8], ebp
mov ebp, ecx
mov edi, dword [esp + 0xc]
mov ecx, edi
dec ebp
shr ecx, 0x1c
shl edi, 4
cmp ecx, 0xa
jge 0x4ba3a4
lea eax, [ecx + 0x30]
jmp 0x4ba3b0
test ebx, ebx
je 0x4ba3ad
lea eax, [ecx + 0x37]
jmp 0x4ba3b0
lea eax, [ecx + 0x57]
mov byte [esi], al
inc esi
test edx, edx
jle 0x4bdabb
dec edx
test ebp, ebp
jne 0x4ba391
mov eax, dword [esp + 8]
mov edx, ecx
mov edi, dword [esp + 0x1d4]
mov ebp, dword [esp + 0x2d8]
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x844]
and edx, 1
shr ebx, 0x1c
and ebx, 0xfffffff8
lea ecx, [ebx + edx*2]
mov ebx, dword [esp + 0xc]
xor edx, edx
test ebx, 0x7fffffff
setne dl
shr ebx, 0x1f
lea edx, [ebx + edx*4]
mov ebx, dword [esp + 0x1d0]
add ecx, edx
mov edx, dword [esp + 0x860]
shr ebx, cl
mov ecx, dword [esp]
and ebx, 1
add ecx, 0xffffff82
mov dword [edx], ecx
test ebx, ebx
je 0x4ba455
movsx edx, byte [esi - 1]
cmp edx, dword [esp + 4]
jne 0x4ba43c
mov ecx, dword [esp + 4]
dec esi
movsx edx, byte [esi - 1]
cmp edx, ecx
je 0x4ba433
cmp edx, 0x39
je 0x4ba446
mov eax, 1
add edx, eax
mov byte [esi - 1], dl
cmp esi, edi
je 0x4bda27
jmp 0x4ba463
cmp dword [esp + 0x254], 0
jle 0x4ba025
test dword [esp + 0x850], 0x80
je 0x4ba47f
cmp byte [esi - 1], 0x30
jne 0x4ba4ac
dec esi
cmp byte [esi - 1], 0x30
je 0x4ba476
jmp 0x4ba4ac
mov edx, dword [esp + 0x254]
sub edx, esi
lea ebx, [edx + edi - 1]
test ebx, ebx
jl 0x4ba4ac
lea eax, [ebx + 1]
cmp ebx, 0x60
jle 0x4bda72
push eax
push 0x30
push esi
call fcn.004ca8b0
add esp, 0xc
lea esi, [esi + ebx + 1]
xor edx, edx
mov ebx, dword [esp + 0x858]
mov byte [esi], 0
test ebx, ebx
je 0x4ba4c2
mov ecx, edi
sub ecx, ebp
mov dword [ebx], ecx
mov ecx, dword [esp + 0x85c]
test ecx, ecx
je 0x4ba4d3
neg ebp
add ebp, esi
mov dword [ecx], ebp
mov ecx, edi
test edi, edi
je 0x4ba4ea
cmp ecx, esi
jae 0x4ba4ea
movsx ebx, byte [ecx]
inc ecx
cmp ebx, 0x30
jne 0x4ba4ef
test ecx, ecx
jne 0x4ba4d9
mov edx, 0xb
mov ecx, dword [esp + 0x868]
test ecx, ecx
je 0x4ba4fc
mov dword [ecx], edx
mov ecx, dword [esp + 0x82c]
mov dword [esp + 0x82c], 0
xor ecx, esp
cmp ecx, dword [0x543b10]
jne 0x4bda6d
mov eax, edi
add esp, 0x830
pop ebp
pop ebx
pop edi
pop esi
ret
test eax, eax
mov dword [esp + 0x138], eax
mov eax, 0
setl al
add eax, 0x4d104d42
mov dword [esp + 0x670], esi
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x138]
imul dword [esp + 0x13c]
mov dword [esp + 0x140], edx
fld dword [esp + 0x244]
mov esi, ebx
mov eax, dword [esp + 0x844]
xor ecx, ecx
shr eax, 0x1c
lea edi, [ebp + 1]
movsx edx, word [esp + 0x142]
and eax, 0xfffffff8
inc edx
and esi, 2
mov dword [esp + 0x154], edx
mov edx, ebx
mov dword [esp + 0x1d8], eax
and edx, 0x41
mov eax, dword [esp + 0x850]
and ebx, 0x14
and eax, 2
mov dword [esp + 0x2d8], ebp
mov dword [esp + 0x150], ecx
mov dword [esp + 0x144], ebx
mov dword [esp + 0x148], edx
mov dword [esp + 0x14c], esi
mov dword [esp + 0x178], eax
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x1d4], edi
mov ebp, dword [esp + 0x154]
jmp 0x4ba5fd
fld dword [esp + 0x244]
mov ebx, dword [esp + 0x1cc]
neg ebx
lea ebp, [ebx + 1]
cmp dword [esp + 0x178], 0
je 0x4ba69c
cmp dword [esp + 0x250], 0
jge 0x4ba637
mov eax, dword [esp + 0x250]
neg eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x250], 0
mov eax, dword [esp + 0x250]
lea edx, [eax + ebp]
mov dword [esp + 0x254], edx
cmp edx, dword [esp + 0x848]
jle 0x4ba68e
sub edx, dword [esp + 0x848]
neg edx
mov ecx, dword [esp + 0x1ec]
add edx, dword [esp + 0x150]
test ecx, ecx
mov eax, dword [esp + 0x860]
mov ebx, dword [esp + 0x848]
mov dword [esp + 0x254], ebx
je 0x4ba683
mov ecx, edx
mov dword [eax], ebp
mov dword [esp + 0x1ec], ecx
jmp 0x4ba6a5
cmp dword [esp + 0x254], 0
jle 0x4bdae2
mov eax, dword [esp + 0x860]
mov dword [eax], ebp
mov ebx, ebp
neg ebx
jne 0x4ba702
mov esi, dword [esp + 0x24c]
and esi, 0x7f800000
shr esi, 0x17
je 0x4ba6ce
mov eax, dword [esp + 0x24c]
or eax, 0xff800000
shl eax, 8
jmp 0x4ba6e7
mov eax, dword [esp + 0x24c]
xor esi, esi
shl eax, 9
test eax, eax
jle 0x4ba6e5
add eax, eax
inc esi
test eax, eax
jg 0x4ba6de
neg esi
mov dword [esp + 0x670], eax
add esi, 0xffffff82
xor edx, edx
mov edi, 0x18
mov eax, 1
jmp 0x4ba89c
cmp dword [esp + 0x254], 0xf
jge 0x4ba715
cmp ebx, 0x24
jle 0x4ba7e2
xor eax, 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
mov dword [esp + 0x7e0], eax
mov dword [esp + 0x7e4], eax
mov dword [esp + 0x7e8], eax
cmp ebx, 0xfffffeaa
jl 0x4ba7d9
cmp ebx, 0x159
jg 0x4ba7d9
mov edi, 0x80
cmp dword [esp + 0x254], 0x11
jg 0x4ba7ab
mov edi, 0x40
xor edx, edx
cmp edi, 0x80
setne dl
mov dword [esp + 0x1e4], edx
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x154], ebp
fstp st(0)
jmp 0x4baf4d
mov edi, 0x80
xor edx, edx
jmp 0x4ba7b6
fld qword [ebx*8 + 0x50ba98]
fmul st(1)
fstp qword [esp + 0x364]
mov edx, dword [esp + 0x368]
mov esi, edx
and esi, 0x7ff00000
mov eax, dword [esp + 0x364]
shr esi, 0x14
je 0x4ba822
or edx, 0xfff00000
mov edi, eax
shl edx, 0xb
shr edi, 0x15
shl eax, 0xb
or edx, edi
jmp 0x4ba873
test edx, edx
je 0x4ba85d
shl edx, 0xc
mov dword [esp], 0
test edx, edx
jle 0x4ba841
mov ecx, dword [esp]
add edx, edx
inc ecx
test edx, edx
jg 0x4ba837
mov dword [esp], ecx
mov ecx, dword [esp]
mov esi, ecx
add ecx, 0xc
mov edi, eax
mov dword [esp], ecx
neg ecx
shr edi, cl
neg esi
mov ecx, dword [esp]
or edx, edi
shl eax, cl
jmp 0x4ba873
mov edx, eax
xor esi, esi
test eax, eax
jle 0x4ba86c
add edx, edx
inc esi
test edx, edx
jg 0x4ba865
add esi, 0x14
xor eax, eax
neg esi
test eax, eax
mov dword [esp + 0x674], eax
mov eax, 0
setne al
mov edi, 0x35
add esi, 0xfffffc02
mov dword [esp + 0x670], edx
inc eax
mov edx, 1
mov dword [esp + 0x1e4], edx
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x154], ebp
fstp st(0)
test esi, esi
jg 0x4ba5ea
mov edi, esi
neg edi
je 0x4ba9dc
mov ecx, edi
lea ebp, [eax - 1]
mov ebx, dword [esp + eax*4 + 0x66c]
neg ecx
mov edx, ebx
shl edx, cl
mov ecx, edi
shr ebx, cl
mov dword [esp + eax*4 + 0x670], edx
mov dword [esp + eax*4 + 0x66c], ebx
cmp eax, 1
je 0x4ba9d5
mov ecx, ebp
shr ecx, 1
je 0x4bdec3
xor ebx, ebx
lea edx, [esp + eax*4 + 0x668]
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x16c], ebp
mov dword [esp + 0x25c], eax
mov dword [esp + 0x2d0], edi
mov esi, ebx
nop
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esi + edx]
mov eax, edi
mov ebp, dword [esp + 0x2d4]
mov ecx, ebp
shl eax, cl
inc ebx
or dword [esi + edx + 4], eax
mov eax, dword [esi + edx - 4]
mov ecx, dword [esp + 0x2d0]
shr edi, cl
mov ecx, ebp
mov ebp, eax
shl ebp, cl
mov ecx, dword [esp + 0x2d0]
or edi, ebp
shr eax, cl
mov dword [esi + edx], edi
mov dword [esi + edx - 4], eax
add esi, 0xfffffff8
cmp ebx, dword [esp + 0x2cc]
jb 0x4ba940
mov ebp, dword [esp + 0x16c]
lea ebx, [ebx + ebx + 1]
mov eax, dword [esp + 0x25c]
mov edi, ecx
mov esi, dword [esp + 0x2d4]
lea edx, [ebx - 1]
cmp edx, ebp
jae 0x4ba9ce
sub ebp, ebx
mov ecx, esi
mov edx, dword [esp + ebp*4 + 0x670]
shl edx, cl
mov ecx, edi
or dword [esp + ebp*4 + 0x674], edx
shr dword [esp + ebp*4 + 0x670], cl
mov edx, dword [esp + eax*4 + 0x670]
jmp 0x4ba9d5
mov edx, dword [esp + eax*4 + 0x670]
xor ecx, ecx
cmp ecx, edx
adc eax, 0
mov ebx, dword [esp + 0x254]
cmp ebx, 0x27
mov edx, dword [esp + 0x2d8]
jle 0x4ba9f4
mov ebx, 0x27
mov ecx, dword [esp + 0x1d4]
mov byte [edx], 0x30
mov dword [esp + 0x1dc], ecx
cmp ebx, dword [esp + 0x1ec]
jle 0x4babeb
sub ebx, dword [esp + 0x1ec]
je 0x4babeb
xor edx, edx
mov dword [esp + 0x2dc], ebx
xor esi, esi
mov dword [esp + 0x66c], 0
test eax, eax
je 0x4babba
mov ebp, dword [esp + eax*4 + 0x66c]
mov ecx, 0
mov dword [esp + eax*4 + 0x66c], 0
je 0x4babab
mov edi, eax
shr edi, 1
je 0x4bdba9
lea ebx, [esp + eax*4 + 0x66c]
mov dword [esp + 0x25c], eax
mov dword [esp + 0x264], edx
mov dword [esp + 0x2f8], edi
mov dword [esp + 0x260], esi
mov eax, ecx
inc ecx
xor esi, esi
mov dword [esp + 0x2fc], 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 + 0x300], 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 + 0x300]
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 + 0x2fc]
add edi, edx
mov ebp, dword [eax + ebx - 8]
mov dword [eax + ebx - 8], edi
add eax, 0xfffffff8
cmp ecx, dword [esp + 0x2f8]
jb 0x4baa89
mov edx, dword [esp + 0x264]
lea ecx, [ecx + ecx + 1]
mov esi, dword [esp + 0x260]
mov eax, dword [esp + 0x25c]
lea ebx, [ecx - 1]
cmp ebx, eax
jae 0x4baba4
neg ecx
add ecx, eax
mov dword [esp + 0x264], edx
mov dword [esp + 0x260], esi
lea esi, [ebp + ebp*4]
xor ebx, ebx
cmp esi, ebp
mov edx, dword [esp + ecx*4 + 0x670]
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 + 0x670], edi
setb dl
add ebp, ebp
shr esi, 0x1f
or ebp, esi
add ebp, edx
mov dword [esp + ecx*4 + 0x66c], ebp
mov ecx, dword [esp + eax*4 + 0x66c]
mov edx, dword [esp + 0x264]
mov esi, dword [esp + 0x260]
jmp 0x4babab
mov ecx, dword [esp + eax*4 + 0x66c]
cmp ecx, 1
mov ebx, dword [esp + 0x66c]
sbb eax, 0
jmp 0x4babbc
xor ebx, ebx
mov ebp, dword [esp + 0x2d8]
lea ecx, [ebx + 0x30]
add edx, 0x35269
mov byte [esi + ebp + 1], cl
lea ecx, [esi + ebp + 2]
inc esi
cmp esi, dword [esp + 0x2dc]
jb 0x4baa2a
mov dword [esp + 0x1dc], ecx
jmp 0x4babf4
mov ebx, dword [esp + 0x66c]
xor edx, edx
mov eax, ecx
add edx, 0xffff
mov edi, dword [esp + 0x1e8]
shr edx, 0x10
mov byte [eax], 0
mov ebp, dword [esp + 0x670]
lea eax, [edi + 0x1f]
mov esi, eax
and esi, 0xffffffe0
mov ecx, esi
sub ecx, edi
add ecx, edx
mov edi, dword [esp + 0x1e4]
shl edi, cl
mov dword [esp + 0x1f8], ebp
mov dword [esp + 0x1f4], ecx
add ebp, 0x80000000
je 0x4bac51
xor edx, edx
cmp ebp, 0x80000000
setne dl
mov dword [esp + 0x1fc], edx
jmp 0x4bac5c
mov dword [esp + 0x1fc], 0
xor edx, edx
test ebp, ebp
mov dword [esp + 0x2b4], eax
mov eax, edx
setns al
and ebx, 1
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x1f0], eax
sub esi, dword [esp + 0x1f4]
add eax, ecx
lea ecx, [eax + ebx*2]
mov eax, dword [esp + 0x1fc]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x1d0]
shr eax, cl
and eax, 1
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x1f8]
lea ecx, [edi + eax - 0x80000000]
lea eax, [edi + edi]
cmp ecx, eax
mov eax, dword [esp + 0x2b4]
setbe dl
mov dword [esp + 0x2b8], edx
cmp esi, 0x20
jb 0x4baf0b
mov edx, dword [esp + 0x1f8]
add edx, 0x80000001
cmp edx, 1
ja 0x4bde72
mov ecx, dword [esp + 0x1f4]
mov edx, ecx
shr eax, 5
shr edx, 5
sub eax, edx
mov edi, dword [esp + 0x1e4]
shl edi, cl
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2bc], edi
mov dword [esp + 0x170], eax
cmp eax, 1
jle 0x4baea6
lea edx, [eax - 1]
shr edx, 1
mov dword [esp + 0x2c4], edx
je 0x4bdeb3
xor edx, edx
lea ecx, [esp + eax*4 + 0x66c]
mov dword [esp + 0x2c0], ecx
xor ecx, ecx
mov dword [esp + 0x168], edi
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x164], ebx
mov edi, ecx
mov esi, dword [esp + 0x2c0]
inc edx
mov dword [esp + 0x2c8], 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 + 0x2b8]
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 + 0x2b8], eax
mov eax, dword [esp + 0x2bc]
neg eax
add eax, edx
cmp eax, edx
mov edx, ebx
mov eax, dword [esp + 0x2b4]
seta dl
neg edx
add edx, esi
lea eax, [edi + eax - 2]
cmp edx, esi
mov edx, dword [esp + 0x2c8]
seta bl
add edi, 0xfffffffe
mov dword [esp + 0x2bc], ebx
cmp edx, dword [esp + 0x2c4]
jb 0x4bad5c
mov dword [esp + 0x170], eax
lea edx, [edx + edx + 1]
mov eax, dword [esp + 0x2b4]
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x168]
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0x174]
lea esi, [eax - 1]
lea ecx, [edx - 1]
cmp ecx, esi
jae 0x4bdea0
mov esi, edx
mov edx, eax
sub edx, esi
mov dword [esp + 0x168], edi
neg esi
mov ecx, dword [esp + 0x2b8]
mov dword [esp + 0x164], ebx
xor ebx, ebx
mov edi, dword [esp + edx*4 + 0x670]
xor edx, edx
test edi, edi
lea eax, [eax + esi]
setne dl
add ecx, edi
cmp ecx, edi
mov dword [esp + 0x170], eax
setb bl
xor ecx, ecx
mov dword [esp + 0x2b8], ebx
mov ebx, dword [esp + 0x2bc]
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 + 0x2bc], ecx
mov dword [esp + 0x1f0], edx
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x2b8]
mov ecx, dword [esp + edx*4 + 0x66c]
add eax, ecx
sub ecx, dword [esp + 0x2bc]
xor eax, ecx
shr eax, 0x1f
mov dword [esp + 0x2b8], eax
test ebp, ebp
je 0x4baee1
xor eax, eax
cmp ebp, 0x80000000
setne al
jmp 0x4baee3
xor eax, eax
mov edx, dword [esp + 0x1d8]
lea ebp, [edx + ebx*2]
add ebp, dword [esp + 0x1f0]
lea ecx, [ebp + eax*4]
mov eax, dword [esp + 0x1d0]
shr eax, cl
and eax, 1
mov dword [esp + 0x1e0], eax
cmp dword [esp + 0x2b8], 0
je 0x4bde72
test edi, edi
je 0x4bde72
cmp dword [esp + 0x1e8], 0x80
jae 0x4bde34
mov eax, 0x40
cmp dword [esp + 0x1e8], 0x40
jb 0x4baf46
mov eax, 0x80
mov dword [esp + 0x1e8], eax
fld dword [esp + 0x244]
mov eax, dword [esp + 0x248]
and eax, 0x7f800000
fstp st(0)
shr eax, 0x17
mov dword [esp + 0x1c8], eax
je 0x4baf7f
mov eax, dword [esp + 0x248]
or eax, 0xff800000
shl eax, 8
jmp 0x4bafb4
mov eax, dword [esp + 0x248]
shl eax, 9
mov dword [esp + 0x1c8], 0
test eax, eax
jle 0x4bafad
mov edx, dword [esp + 0x1c8]
add eax, eax
inc edx
test eax, eax
jg 0x4baf9f
mov dword [esp + 0x1c8], edx
neg dword [esp + 0x1c8]
xor edx, edx
mov dword [esp + 0x670], eax
mov dword [esp + 0x7ec], edx
mov dword [esp + 0x7f8], edx
mov dword [esp + 0x7fc], edx
mov dword [esp + 0x800], edx
mov dword [esp + 0x804], edx
mov dword [esp + 0x808], edx
mov dword [esp + 0x80c], edx
mov dword [esp + 0x810], edx
mov dword [esp + 0x814], edx
mov dword [esp + 0x818], edx
mov dword [esp + 0x81c], edx
mov dword [esp + 0x820], edx
mov dword [esp + 0x824], edx
mov dword [esp + 0x828], edx
mov ebx, dword [esp + 0x1cc]
cmp dword [esp + 0x1e8], 0x40
jne 0x4bb654
mov edx, ebx
lea ecx, [edx + 0x2f]
cmp ecx, 0x5e
ja 0x4bb0a6
mov ebx, dword [esp + 0x154]
xor ecx, ecx
mov dword [esp + 0x7f4], ecx
mov dword [esp + 0x7f0], ecx
lea esi, [ebx*8]
neg esi
movsx ecx, word [edx*2 + 0x50b4be]
mov ebp, dword [esi + 0x50b2dc]
mov edi, dword [esi + 0x50b2d8]
mov dword [esp + 0x7b0], ebp
mov ebp, 2
mov dword [esp + 0x7b4], edi
test edi, edi
jne 0x4bdbb3
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bb08d
jmp 0x4bd644
cmp dword [esp + 0x1cc], 0
jl 0x4bdc0b
mov eax, ebx
sar eax, 3
movzx edx, word [eax*2 + 0x50b6a2]
lea ecx, [eax + 1]
shr edx, 5
cmp edx, ebx
jle 0x4bb0cd
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 + 0x12c], ebp
mov dword [esp + 0x7f0], esi
movsx ecx, word [edx*2 + 0x50b4be]
mov esi, 2
mov ebx, dword [edx*8 + 0x50b2dc]
mov edx, dword [edx*8 + 0x50b2d8]
mov dword [esp + 0x7f4], eax
mov dword [esp + 0x128], ecx
mov dword [esp + 0x7b0], ebx
mov dword [esp + 0x7b4], edx
test edx, edx
jne 0x4bdbfa
dec esi
lea ebx, [esp + esi*4 + 0x7ac]
cmp dword [ebx], 0
lea ecx, [esi*4]
je 0x4bb144
mov dword [esp + 0x11c], eax
mov eax, dword [ebx]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x118]
mul dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov eax, dword [ebx]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0x120]
mov ebp, dword [esp + 0x7f0]
mov dword [esp + esi*4 + 0x630], 0
mov dword [esp + 0x2a4], eax
mov dword [esp + esi*4 + 0x5f0], edx
mov dword [esp + esi*4 + 0x5f4], ebx
mov dword [esp + 0x2a8], ebp
mov eax, dword [esp + 0x2a4]
mul dword [esp + 0x2a8]
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2b0], edx
mov ebp, dword [esp + 0x2ac]
xor eax, eax
mov edi, dword [esp + esi*4 + 0x5f0]
mov ebx, esi
add edi, ebp
cmp edi, ebp
mov dword [esp + esi*4 + 0x62c], eax
setb al
add eax, dword [esp + 0x2b0]
mov dword [esp + esi*4 + 0x5f0], edi
dec ebx
mov dword [esp + esi*4 + 0x5ec], eax
js 0x4bb292
mov ebp, esi
shr ebp, 1
je 0x4bdbf0
xor edi, edi
lea edx, [esp + ecx + 0x62c]
mov dword [esp + 0x28c], ebx
lea eax, [esp + ecx + 0x5ec]
mov dword [esp + 0x290], esi
xor esi, esi
lea ebx, [edi*8]
inc edi
neg ebx
mov dword [edx + ebx - 4], esi
mov dword [eax + ebx - 4], esi
mov dword [edx + ebx - 8], esi
mov dword [eax + ebx - 8], esi
cmp edi, ebp
jb 0x4bb240
mov ebx, dword [esp + 0x28c]
lea eax, [edi + edi + 1]
mov esi, dword [esp + 0x290]
lea edx, [eax - 1]
cmp edx, esi
jae 0x4bb292
shl eax, 2
lea edx, [esp + ecx + 0x62c]
neg eax
lea ecx, [esp + ecx + 0x5ec]
xor ebp, ebp
mov dword [eax + edx], ebp
mov dword [eax + ecx], ebp
test ebx, ebx
je 0x4bb334
mov dword [esp + 0x290], esi
mov ebp, 2
lea esi, [esp + ebx*4 + 0x62c]
lea ecx, [esp + ebx*4 + 0x5ec]
mov eax, dword [esp + ebx*4 + 0x7ac]
mov edx, dword [esp + ebp*4 + 0x7ec]
mov dword [esp + 0x354], eax
mov dword [esp + 0x358], edx
mov eax, dword [esp + 0x354]
mul dword [esp + 0x358]
mov dword [esp + 0x35c], eax
mov dword [esp + 0x360], edx
mov edx, dword [esp + 0x35c]
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 + 0x360]
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 0x4bb2b4
dec ebx
jne 0x4bb2a1
mov esi, dword [esp + 0x290]
mov edx, dword [esp + 0x128]
lea eax, [esi + 2]
mov ecx, dword [esp + 0x12c]
lea ebx, [esp + esi*4 + 0x7b4]
mov dword [esp + 0x130], ebx
lea ebp, [esi + 1]
add ecx, edx
mov edx, dword [ebx - 0x1c0]
mov dword [ebx], edx
cmp eax, 1
je 0x4bb49f
mov edx, ebp
mov dword [esp + 0x134], 0
shr edx, 1
je 0x4bdbe6
xor ebx, ebx
lea edi, [esp + esi*4 + 0x7b0]
mov dword [esp + 0xb0], edi
lea edi, [esp + esi*4 + 0x5f0]
mov dword [esp + 0xb4], edi
lea edi, [esp + esi*4 + 0x630]
mov dword [esp + 0x23c], edi
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov dword [esp + 0xac], eax
mov dword [esp + 0x240], edx
mov dword [esp + 0x290], esi
mov edi, ebx
mov ebp, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x134]
mov esi, dword [esp + 0x23c]
inc ebx
mov edx, dword [edi + ebp]
add eax, dword [edi + esi]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + esi - 4]
mov esi, dword [edi + ebp - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ecx - 4], esi
setb al
add edi, 0xfffffff8
cmp ebx, dword [esp + 0x240]
jb 0x4bb3e4
mov dword [esp + 0x134], eax
lea ebx, [ebx + ebx + 1]
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x290]
lea edx, [ebx - 1]
cmp edx, ebp
jae 0x4bb496
shl ebx, 2
lea edi, [esp + esi*4 + 0x5f0]
neg ebx
mov dword [esp + 0x198], ebp
lea ebp, [esp + esi*4 + 0x630]
mov edx, dword [esp + 0x134]
lea esi, [esp + esi*4 + 0x7b0]
add edx, dword [ebx + ebp + 4]
add edx, dword [ebx + edi + 4]
mov dword [ebx + esi + 4], edx
mov ebx, dword [esp + 0x130]
mov ebp, dword [esp + 0x198]
mov edx, dword [ebx]
jmp 0x4bb49f
mov edx, dword [esp + 0x130]
mov edx, dword [edx]
test edx, edx
jne 0x4bb4ba
dec eax
lea edx, [esp + eax*4 + 0x7ac]
cmp dword [edx], 0
je 0x4bb4a3
mov dword [esp + 0x130], edx
lea ebp, [eax - 1]
mov ebx, dword [esp + 0x7b0]
test ebx, ebx
jle 0x4bb563
mov ecx, dword [esp + 0x128]
add ebx, ebx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x7b0], ebx
lea ecx, [edx + ecx - 1]
cmp eax, 2
jb 0x4bb563
lea ebx, [eax - 1]
shr ebx, 1
je 0x4bdbdc
mov dword [esp + 0xac], eax
xor edx, edx
mov eax, dword [esp + edx*8 + 0x7b4]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x7b0], esi
mov esi, dword [esp + edx*8 + 0x7b8]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x7b4], eax
mov dword [esp + edx*8 + 0x7b8], esi
inc edx
cmp edx, ebx
jb 0x4bb4fd
mov eax, dword [esp + 0xac]
lea esi, [edx + edx + 1]
lea edx, [esi - 1]
cmp edx, ebp
jae 0x4bb563
mov ebx, dword [esp + esi*4 + 0x7b0]
mov edx, ebx
shr edx, 0x1f
add ebx, ebx
or dword [esp + esi*4 + 0x7ac], edx
mov dword [esp + esi*4 + 0x7b0], ebx
mov edx, dword [esp + 0x130]
cmp dword [edx], 0
je 0x4bb571
mov ebp, eax
cmp ebp, 2
jb 0x4bb63a
mov eax, dword [esp + 0x7b8]
shr eax, 0x1f
mov edx, dword [esp + 0x7b4]
add edx, eax
mov dword [esp + 0x7b4], edx
cmp edx, eax
jae 0x4bb614
mov dword [esp + 0x7ac], 0
mov ebp, 1
cmp dword [esp + 0x7b0], 0xffffffff
je 0x4bb5c2
mov ebx, 4
lea esi, [esp + 0x7b0]
mov eax, dword [esi]
jmp 0x4bb5dc
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x4bb5c2
test ebp, ebp
je 0x4bb5eb
inc eax
mov dword [esi], eax
mov eax, dword [esp + 0x670]
jmp 0x4bd644
mov dword [esp + 0x7b0], 0x80000000
inc ecx
mov eax, dword [esp + 0x670]
mov ebp, 1
mov ebx, 4
lea esi, [esp + 0x7b0]
jmp 0x4bd644
mov ebp, 2
test edx, edx
jne 0x4bdbc4
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bb621
jmp 0x4bd63d
mov eax, dword [esp + 0x670]
lea ebx, [ebp*4]
lea esi, [esp + ebp*4 + 0x7ac]
jmp 0x4bd644
mov dword [esp + 0x7f4], edx
mov dword [esp + 0x7f0], edx
mov dword [esp + 0x76c], edx
mov dword [esp + 0x780], edx
mov dword [esp + 0x784], edx
mov dword [esp + 0x788], edx
mov dword [esp + 0x78c], edx
mov dword [esp + 0x790], edx
mov dword [esp + 0x794], edx
mov dword [esp + 0x798], edx
mov dword [esp + 0x79c], edx
mov dword [esp + 0x7a0], edx
mov dword [esp + 0x7a4], edx
mov dword [esp + 0x7a8], edx
cmp dword [esp + 0x1cc], 0xfffffdea
jge 0x4bbdd5
mov esi, dword [esp + 0x1e8]
shr esi, 5
cmp dword [esp + 0x1cc], 0xfffff000
jle 0x4bb70f
mov ebp, 0x1000
mov dword [esp + 0x77c], edx
xor edi, edi
mov dword [esp + 0x778], edx
mov ecx, 3
mov dword [esp + 0x774], edx
mov dword [esp + 0x770], edx
mov edx, dword [esp + 0x158]
jmp 0x4bb767
mov eax, ebx
mov ebp, 0x1000
mov ecx, 3
lea ebx, [eax + 0x1000]
mov eax, ecx
shl eax, 4
movsx edx, word [ecx*2 + 0x50b11e]
mov edi, dword [eax + 0x50ae0c]
mov dword [esp + 0x770], edi
mov edi, dword [eax + 0x50ae08]
mov dword [esp + 0x774], edi
mov edi, dword [eax + 0x50ae04]
mov eax, dword [eax + 0x50ae00]
mov dword [esp + 0x778], edi
mov edi, 4
mov dword [esp + 0x77c], eax
mov dword [esp + 0x158], edx
lea eax, [esi - 1]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], esi
sar ebp, 1
dec ecx
js 0x4bc457
mov eax, ebp
neg eax
cmp ebx, eax
jg 0x4bb77f
add ebx, ebp
test edi, edi
je 0x4bbdc9
mov esi, ecx
shl esi, 4
movsx eax, word [ecx*2 + 0x50b11e]
mov dword [esp + 0xd8], eax
mov edx, dword [esi + 0x50ae0c]
mov eax, dword [esi + 0x50ae08]
mov dword [esp + 0x7f0], edx
mov dword [esp + 0x7f4], eax
mov edx, dword [esi + 0x50ae04]
mov esi, dword [esi + 0x50ae00]
mov eax, dword [esp + edi*4 + 0x76c]
mov dword [esp + 0x7f8], edx
mov dword [esp + 0x7fc], esi
mov dword [esp + 0xc8], esi
lea esi, [edi + 3]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
mul dword [esp + 0xc8]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
mov dword [esp + esi*4 + 0x4ec], eax
mov eax, 3
mov dword [esp + esi*4 + 0x4f0], edx
mov dword [esp + 0xe8], ecx
mov ecx, eax
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xd4], ebx
xor ebx, ebx
mov edx, dword [esp + edi*4 + 0x76c]
mov ebp, dword [esp + ecx*4 + 0x7ec]
mov dword [esp + esi*4 + 0x52c], 0
mov dword [esp + 0x27c], edx
mov dword [esp + 0x280], ebp
mov eax, dword [esp + 0x27c]
mul dword [esp + 0x280]
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], edx
mov edx, dword [esp + 0x284]
mov eax, ebx
mov ebp, dword [esp + esi*4 + 0x4ec]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x4ec], ebp
setb al
dec esi
add eax, dword [esp + 0x288]
mov dword [esp + esi*4 + 0x4ec], eax
dec ecx
jne 0x4bb850
mov eax, esi
mov ecx, dword [esp + 0xe8]
dec eax
mov ebp, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd4]
mov dword [esp + esi*4 + 0x52c], 0
js 0x4bb9b8
mov eax, esi
shr eax, 1
mov dword [esp + 0xf0], eax
je 0x4bdc79
xor eax, eax
lea edx, [esp + esi*4 + 0x4e8]
mov dword [esp + 0xc0], edx
lea edx, [esp + esi*4 + 0x528]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xb8], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xf0]
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 0x4bb950
mov esi, dword [esp + 0xb8]
lea edx, [eax + eax + 1]
mov ecx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd4]
lea eax, [edx - 1]
cmp eax, esi
jae 0x4bb9b8
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x278], edi
lea edi, [esp + esi*4 + 0x528]
lea esi, [esp + esi*4 + 0x4e8]
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edi, dword [esp + 0x278]
mov esi, edi
dec esi
je 0x4bba8c
mov dword [esp + 0x278], edi
mov eax, 4
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xd4], ebx
mov ebx, eax
lea ebp, [esp + esi*4 + 0x52c]
lea ecx, [esp + esi*4 + 0x4ec]
mov eax, dword [esp + esi*4 + 0x76c]
mov edx, dword [esp + ebx*4 + 0x7ec]
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], edx
mov eax, dword [esp + 0x334]
mul dword [esp + 0x338]
mov dword [esp + 0x33c], eax
mov dword [esp + 0x340], edx
mov edx, dword [esp + 0x33c]
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 + 0x340]
mov edx, dword [ecx + ebx*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebx*4 - 4], edx
setb al
add dword [ebp + ebx*4 - 8], eax
dec ebx
jne 0x4bb9f2
mov eax, 4
dec esi
jne 0x4bb9e2
mov edi, dword [esp + 0x278]
mov ecx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0x158]
lea edx, [edi + 4]
add esi, dword [esp + 0xd8]
lea eax, [esp + edi*4 + 0x77c]
mov dword [esp + 0x158], esi
mov esi, dword [eax - 0x280]
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe0], eax
mov dword [eax], esi
lea eax, [edi + 3]
cmp edx, 1
je 0x4bbc1f
mov edx, eax
mov dword [esp + 0xec], 0
shr edx, 1
mov dword [esp + 0x220], edx
je 0x4bdc6f
xor esi, esi
lea edx, [esp + edi*4 + 0x778]
mov dword [esp + 0x98], edx
lea edx, [esp + edi*4 + 0x4f8]
mov dword [esp + 0x94], edx
lea edx, [esp + edi*4 + 0x538]
mov dword [esp + 0x278], edi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x21c], edx
mov dword [esp + 0xdc], ebp
mov edi, esi
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0x21c]
inc esi
mov edx, dword [edi + ebx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ebx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ecx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x220]
jb 0x4bbb4f
mov dword [esp + 0xec], eax
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd4]
lea esi, [edx - 1]
cmp esi, eax
jae 0x4bbc16
shl edx, 2
lea esi, [esp + edi*4 + 0x4f8]
neg edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xe8], ecx
lea ecx, [esp + edi*4 + 0x538]
mov eax, dword [esp + 0xec]
lea edi, [esp + edi*4 + 0x778]
add eax, dword [edx + ecx + 4]
add eax, dword [edx + esi + 4]
mov dword [edx + edi + 4], eax
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xe8]
mov esi, dword [edx]
jmp 0x4bbc1f
mov edx, dword [esp + 0xe0]
mov esi, dword [edx]
test esi, esi
jne 0x4bbc4a
mov edx, dword [esp + 0xe4]
dec edx
lea eax, [esp + edx*4 + 0x76c]
cmp dword [eax], 0
je 0x4bbc2a
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe0], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x770]
test edx, edx
jle 0x4bbd06
dec dword [esp + 0x158]
add edx, edx
mov dword [esp + 0x770], edx
cmp dword [esp + 0xe4], 2
jb 0x4bbd06
mov edx, dword [esp + 0xe4]
lea edi, [edx - 1]
shr edi, 1
je 0x4bdc65
mov dword [esp + 0xdc], ebp
xor esi, esi
mov dword [esp + 0xd4], ebx
mov edx, dword [esp + esi*8 + 0x774]
mov ebx, edx
shr ebx, 0x1f
add edx, edx
or dword [esp + esi*8 + 0x770], ebx
mov ebx, dword [esp + esi*8 + 0x778]
mov ebp, ebx
shr ebp, 0x1f
add ebx, ebx
or edx, ebp
mov dword [esp + esi*8 + 0x774], edx
mov dword [esp + esi*8 + 0x778], ebx
inc esi
cmp esi, edi
jb 0x4bbc99
mov ebp, dword [esp + 0xdc]
lea edx, [esi + esi + 1]
mov ebx, dword [esp + 0xd4]
lea esi, [edx - 1]
cmp esi, eax
jae 0x4bbd06
mov edi, dword [esp + edx*4 + 0x770]
mov esi, edi
shr esi, 0x1f
add edi, edi
or dword [esp + edx*4 + 0x76c], esi
mov dword [esp + edx*4 + 0x770], edi
mov edx, dword [esp + 0xe0]
mov edi, eax
cmp dword [edx], 0
je 0x4bbd1b
mov edi, dword [esp + 0xe4]
cmp edi, dword [esp + 0x160]
jb 0x4bb77f
mov edi, dword [esp + 0x160]
mov eax, edi
mov edx, dword [esp + eax*4 + 0x770]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x76c]
add eax, edx
cmp eax, edx
jae 0x4bbda8
mov edx, edi
mov edi, dword [esp + 0x15c]
mov dword [esp + edx*4 + 0x76c], eax
lea edx, [esp + edx*4 + 0x768]
mov dword [esp + 0x76c], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x4bbd80
dec edi
lea edx, [esp + edi*4 + 0x76c]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4bbd71
test edi, edi
je 0x4bbd8c
inc eax
mov dword [edx], eax
jmp 0x4bb77f
inc dword [esp + 0x158]
mov edi, 1
mov dword [esp + 0x770], 0x80000000
jmp 0x4bb77f
mov edx, edi
mov dword [esp + edx*4 + 0x76c], eax
test eax, eax
jne 0x4bb77f
dec edi
cmp dword [esp + edi*4 + 0x76c], 0
je 0x4bbdb9
jmp 0x4bb77f
mov esi, dword [esp + 0x160]
jmp 0x4bb721
cmp dword [esp + 0x1cc], 0x216
jle 0x4bc439
mov esi, dword [esp + 0x1e8]
shr esi, 5
cmp dword [esp + 0x1cc], 0x1000
jge 0x4bbe2e
mov ecx, 0x1000
mov dword [esp + 0x77c], edx
xor edi, edi
mov dword [esp + 0x778], edx
mov ebp, 3
mov dword [esp + 0x774], edx
mov dword [esp + 0x770], edx
mov edx, dword [esp + 0x158]
jmp 0x4bbe86
mov eax, ebx
mov ecx, 0x1000
mov ebp, 3
lea ebx, [eax - 0x1000]
mov eax, ebp
shl eax, 4
movsx edx, word [ebp*2 + 0x50b13a]
mov edi, dword [eax + 0x50af8c]
mov dword [esp + 0x770], edi
mov edi, dword [eax + 0x50af88]
mov dword [esp + 0x774], edi
mov edi, dword [eax + 0x50af84]
mov eax, dword [eax + 0x50af80]
mov dword [esp + 0x778], edi
mov edi, 4
mov dword [esp + 0x77c], eax
mov dword [esp + 0x158], edx
lea eax, [esi - 1]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], esi
sar ecx, 1
dec ebp
js 0x4bc457
cmp ebx, ecx
jl 0x4bbe9e
sub ebx, ecx
test edi, edi
je 0x4bc42d
mov esi, ebp
shl esi, 4
movsx eax, word [ebp*2 + 0x50b13a]
mov dword [esp + 0xd8], eax
mov edx, dword [esi + 0x50af8c]
mov eax, dword [esi + 0x50af88]
mov dword [esp + 0x7f0], edx
mov dword [esp + 0x7f4], eax
mov edx, dword [esi + 0x50af84]
mov esi, dword [esi + 0x50af80]
mov eax, dword [esp + edi*4 + 0x76c]
mov dword [esp + 0x7f8], edx
mov dword [esp + 0x7fc], esi
mov dword [esp + 0x24], esi
lea esi, [edi + 3]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mul dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x36c], eax
mov eax, 3
mov dword [esp + esi*4 + 0x370], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ecx
mov ecx, eax
mov dword [esp + 0xd4], ebx
xor ebx, ebx
mov edx, dword [esp + edi*4 + 0x76c]
mov ebp, dword [esp + ecx*4 + 0x7ec]
mov dword [esp + esi*4 + 0x3ac], 0
mov dword [esp + 0x20c], edx
mov dword [esp + 0x210], ebp
mov eax, dword [esp + 0x20c]
mul dword [esp + 0x210]
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], edx
mov edx, dword [esp + 0x214]
mov eax, ebx
mov ebp, dword [esp + esi*4 + 0x36c]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x36c], ebp
setb al
dec esi
add eax, dword [esp + 0x218]
mov dword [esp + esi*4 + 0x36c], eax
dec ecx
jne 0x4bbf4d
mov eax, esi
mov ebp, dword [esp + 0x3c]
dec eax
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd4]
mov dword [esp + esi*4 + 0x3ac], 0
js 0x4bc08b
mov eax, esi
shr eax, 1
mov dword [esp + 0x44], eax
je 0x4bdc97
xor eax, eax
lea edx, [esp + esi*4 + 0x368]
mov dword [esp + 0x1c], edx
lea edx, [esp + esi*4 + 0x3a8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x14], esi
xor esi, esi
mov edx, eax
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x44]
inc eax
mov dword [edx + ecx], esi
mov dword [edx + ebx], esi
mov dword [edx + ecx - 4], esi
mov dword [edx + ebx - 4], esi
add edx, 0xfffffff8
cmp eax, ebp
jb 0x4bc02c
mov esi, dword [esp + 0x14]
lea edx, [eax + eax + 1]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd4]
lea eax, [edx - 1]
cmp eax, esi
jae 0x4bc08b
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x278], edi
lea edi, [esp + esi*4 + 0x3a8]
lea esi, [esp + esi*4 + 0x368]
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edi, dword [esp + 0x278]
mov esi, edi
dec esi
je 0x4bc153
mov dword [esp + 0x278], edi
mov eax, 4
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0xd4], ebx
mov ebx, eax
lea ebp, [esp + esi*4 + 0x3ac]
lea ecx, [esp + esi*4 + 0x36c]
mov eax, dword [esp + esi*4 + 0x76c]
mov edx, dword [esp + ebx*4 + 0x7ec]
mov dword [esp + 0x304], eax
mov dword [esp + 0x308], edx
mov eax, dword [esp + 0x304]
mul dword [esp + 0x308]
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], edx
mov edx, dword [esp + 0x30c]
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 + 0x310]
mov edx, dword [ecx + ebx*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebx*4 - 4], edx
setb al
add dword [ebp + ebx*4 - 8], eax
dec ebx
jne 0x4bc0bf
mov eax, 4
dec esi
jne 0x4bc0af
mov edi, dword [esp + 0x278]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0x158]
lea edx, [edi + 4]
add esi, dword [esp + 0xd8]
lea eax, [esp + edi*4 + 0x77c]
mov dword [esp + 0x158], esi
mov esi, dword [eax - 0x400]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov dword [eax], esi
lea eax, [edi + 3]
cmp edx, 1
je 0x4bc29e
mov edx, eax
mov dword [esp + 0x40], 0
shr edx, 1
mov dword [esp + 0x180], edx
je 0x4bdc8d
xor esi, esi
lea edx, [esp + edi*4 + 0x378]
mov dword [esp + 0xc], edx
lea edx, [esp + edi*4 + 0x3b8]
mov dword [esp + 0x17c], edx
lea edx, [esp + edi*4 + 0x778]
mov dword [esp + 0x278], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x3c], ebp
mov edi, esi
mov ebx, edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x17c]
inc esi
mov edx, dword [edi + ecx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ebx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ecx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ebx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x180]
jb 0x4bc1ef
mov dword [esp + 0x40], eax
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd4]
lea esi, [edx - 1]
cmp esi, eax
jae 0x4bc298
shl edx, 2
lea esi, [esp + edi*4 + 0x378]
neg edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], ebp
lea ebp, [esp + edi*4 + 0x3b8]
mov eax, dword [esp + 0x40]
lea edi, [esp + edi*4 + 0x778]
add eax, dword [edx + ebp + 4]
add eax, dword [edx + esi + 4]
mov dword [edx + edi + 4], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov esi, dword [edx]
jmp 0x4bc29e
mov edx, dword [esp + 0x34]
mov esi, dword [edx]
test esi, esi
jne 0x4bc2c0
mov edx, dword [esp + 0x38]
dec edx
lea eax, [esp + edx*4 + 0x76c]
cmp dword [eax], 0
je 0x4bc2a6
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x770]
test edx, edx
jle 0x4bc370
dec dword [esp + 0x158]
add edx, edx
mov dword [esp + 0x770], edx
cmp dword [esp + 0x38], 2
jb 0x4bc370
mov edx, dword [esp + 0x38]
lea edi, [edx - 1]
shr edi, 1
je 0x4bdc83
mov dword [esp + 0x30], ecx
xor esi, esi
mov dword [esp + 0xd4], ebx
mov edx, dword [esp + esi*8 + 0x774]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + esi*8 + 0x770], ecx
mov ecx, dword [esp + esi*8 + 0x778]
mov ebx, ecx
shr ebx, 0x1f
add ecx, ecx
or edx, ebx
mov dword [esp + esi*8 + 0x774], edx
mov dword [esp + esi*8 + 0x778], ecx
inc esi
cmp esi, edi
jb 0x4bc306
mov ecx, dword [esp + 0x30]
lea edx, [esi + esi + 1]
mov ebx, dword [esp + 0xd4]
lea esi, [edx - 1]
cmp esi, eax
jae 0x4bc370
mov edi, dword [esp + edx*4 + 0x770]
mov esi, edi
shr esi, 0x1f
add edi, edi
or dword [esp + edx*4 + 0x76c], esi
mov dword [esp + edx*4 + 0x770], edi
mov edx, dword [esp + 0x34]
mov edi, eax
cmp dword [edx], 0
je 0x4bc37f
mov edi, dword [esp + 0x38]
cmp edi, dword [esp + 0xf8]
jb 0x4bbe9e
mov edi, dword [esp + 0xf8]
mov eax, edi
mov edx, dword [esp + eax*4 + 0x770]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x76c]
add eax, edx
cmp eax, edx
jae 0x4bc40c
mov edx, edi
mov edi, dword [esp + 0xf4]
mov dword [esp + edx*4 + 0x76c], eax
lea edx, [esp + edx*4 + 0x768]
mov dword [esp + 0x76c], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x4bc3e4
dec edi
lea edx, [esp + edi*4 + 0x76c]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4bc3d5
test edi, edi
je 0x4bc3f0
inc eax
mov dword [edx], eax
jmp 0x4bbe9e
inc dword [esp + 0x158]
mov edi, 1
mov dword [esp + 0x770], 0x80000000
jmp 0x4bbe9e
mov edx, edi
mov dword [esp + edx*4 + 0x76c], eax
test eax, eax
jne 0x4bbe9e
dec edi
cmp dword [esp + edi*4 + 0x76c], 0
je 0x4bc41d
jmp 0x4bbe9e
mov esi, dword [esp + 0xf8]
jmp 0x4bbe40
mov dword [esp + 0x77c], edx
xor edi, edi
mov dword [esp + 0x778], edx
mov dword [esp + 0x774], edx
mov dword [esp + 0x770], edx
lea eax, [ebx + 0x1b]
cmp eax, 0x1a
ja 0x4bc4c4
movsx ecx, word [ebx*2 + 0x50b11e]
shl ebx, 4
mov eax, dword [ebx + 0x50adfc]
mov edx, dword [ebx + 0x50adf8]
mov ebp, dword [ebx + 0x50adf4]
mov ebx, dword [ebx + 0x50adf0]
mov dword [esp + 0x7b0], eax
mov dword [esp + 0x7b4], edx
mov dword [esp + 0x7b8], ebp
mov ebp, 4
mov dword [esp + 0x7bc], ebx
test ebx, ebx
jne 0x4bdca1
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bc4ab
jmp 0x4bd12d
xor eax, eax
mov dword [esp + 0x72c], 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
mov dword [esp + 0x764], eax
mov dword [esp + 0x768], eax
test ebx, ebx
jl 0x4bddaf
cmp ebx, 0x37
jl 0x4bc5b3
mov ecx, ebx
sar ecx, 3
mov dword [esp + 0x208], 4
movzx edx, word [ecx*2 + 0x50b062]
lea ebp, [ecx + 1]
shr edx, 5
cmp edx, ebx
jle 0x4bc559
mov ebp, ecx
movzx esi, word [ebp*2 + 0x50b060]
mov eax, esi
and eax, 0x1f
shr esi, 5
sub ebx, esi
movsx edx, word [eax*2 + 0x50b142]
shl eax, 4
mov dword [esp + 0xd8], edx
mov ecx, dword [eax + 0x50afcc]
mov ebp, dword [eax + 0x50afc8]
mov esi, dword [eax + 0x50afc4]
mov eax, dword [eax + 0x50afc0]
mov dword [esp + 0x7f0], ecx
mov dword [esp + 0x7f4], ebp
mov dword [esp + 0x7f8], esi
mov dword [esp + 0x7fc], eax
jmp 0x4bc5be
mov dword [esp + 0x208], 0
cmp ebx, 0x37
je 0x4bdd62
lea eax, [ebx - 0x1b]
mov dword [esp + 0x90], eax
test eax, eax
jle 0x4bdd4d
mov ecx, eax
mov ebp, 2
mov dword [esp + 0x258], ebp
movsx eax, word [ecx*2 + 0x50b4be]
mov edx, dword [ecx*8 + 0x50b2dc]
mov ebx, dword [ecx*8 + 0x50b2d8]
mov dword [esp + 0x84], eax
mov dword [esp + 0x730], edx
mov dword [esp + 0x734], ebx
test ebx, ebx
jne 0x4bdd43
mov eax, ebp
dec eax
cmp dword [esp + eax*4 + 0x72c], 0
je 0x4bc61c
mov dword [esp + 0x258], eax
mov ebx, 0x1b
mov eax, dword [ebx*8 + 0x50b2dc]
mov ebp, 2
mov edx, dword [ebx*8 + 0x50b2d8]
movsx ecx, word [ebx*2 + 0x50b4be]
mov dword [esp + 0x7b0], eax
mov dword [esp + 0x7b4], edx
test edx, edx
jne 0x4bdd32
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bc664
cmp dword [esp + 0x90], 0
jle 0x4bcbf5
mov ebx, dword [esp + 0x258]
mov edx, dword [esi]
mov dword [esp + 0x6c], edx
lea eax, [ebx + ebp - 1]
mov dword [esp + 0x88], eax
mov eax, dword [esp + ebx*4 + 0x72c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x70]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov dword [esp + ebx*4 + 0x46c], eax
mov dword [esp + ebx*4 + 0x470], edx
mov ebx, dword [esp + 0x258]
dec ebx
je 0x4bc78c
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x198], ebp
xor ebp, ebp
mov dword [esp + 0x278], edi
mov ecx, dword [esp + 0x88]
mov eax, dword [esi]
mov edx, dword [esp + ebx*4 + 0x72c]
mov dword [esp + ecx*4 + 0x4ac], 0
mov dword [esp + 0x268], eax
mov dword [esp + 0x26c], edx
mov eax, dword [esp + 0x268]
mul dword [esp + 0x26c]
mov dword [esp + 0x270], eax
mov dword [esp + 0x274], edx
mov edx, dword [esp + 0x270]
mov eax, ebp
mov edi, dword [esp + ecx*4 + 0x46c]
add edi, edx
cmp edi, edx
mov dword [esp + ecx*4 + 0x46c], edi
setb al
dec ecx
add eax, dword [esp + 0x274]
mov dword [esp + ecx*4 + 0x46c], eax
dec ebx
jne 0x4bc702
mov dword [esp + 0x88], ecx
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x88]
mov dword [esp + eax*4 + 0x4ac], 0
dec eax
js 0x4bc835
mov edx, dword [esp + 0x88]
shr edx, 1
je 0x4bdd28
mov eax, dword [esp + 0x88]
xor esi, esi
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
lea ebx, [esp + eax*4 + 0x468]
mov ecx, esi
lea eax, [esp + eax*4 + 0x4a8]
xor edi, edi
inc esi
mov dword [ecx + eax], edi
mov dword [ecx + ebx], edi
mov dword [ecx + eax - 4], edi
mov dword [ecx + ebx - 4], edi
add ecx, 0xfffffff8
cmp esi, edx
jb 0x4bc7dd
mov ecx, dword [esp + 0x19c]
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x278]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x88]
jae 0x4bc835
shl edx, 2
xor eax, eax
mov esi, dword [esp + 0x88]
neg edx
lea ebx, [esp + esi*4 + 0x4a8]
mov dword [edx + ebx + 4], eax
lea ebx, [esp + esi*4 + 0x468]
mov dword [edx + ebx + 4], eax
mov ebx, ebp
dec ebx
je 0x4bc907
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
mov eax, dword [esp + 0x258]
mov ebp, eax
test eax, eax
je 0x4bc8eb
lea ecx, [esp + ebx*4 + 0x4ac]
lea esi, [esp + ebx*4 + 0x46c]
mov eax, dword [esp + ebx*4 + 0x7ac]
mov edx, dword [esp + ebp*4 + 0x72c]
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], edx
mov eax, dword [esp + 0x324]
mul dword [esp + 0x328]
mov dword [esp + 0x32c], eax
mov dword [esp + 0x330], edx
mov edx, dword [esp + 0x32c]
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 + 0x330]
mov edx, dword [esi + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [esi + ebp*4 - 4], edx
setb al
add dword [ecx + ebp*4 - 8], eax
dec ebp
jne 0x4bc872
mov eax, dword [esp + 0x258]
dec ebx
jne 0x4bc85a
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x258]
add ecx, dword [esp + 0x84]
lea edx, [ebp + eax]
mov dword [esp + 0x80], edx
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + edx*4 + 0x46c]
lea ebx, [esp + edx*4 + 0x7ac]
mov dword [esp + 0x7c], ebx
mov dword [ebx], eax
cmp edx, 1
je 0x4bca43
mov eax, ebp
mov dword [esp + 0x8c], 0
shr eax, 1
je 0x4bdd1e
xor ebx, ebx
lea edx, [esp + ebp*4 + 0x46c]
mov dword [esp + 0x68], edx
lea esi, [esp + ebp*4 + 0x7ac]
lea edx, [esp + ebp*4 + 0x4ac]
mov dword [esp + 0x200], eax
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
mov dword [esp + 0x204], edx
mov edi, ebx
mov ebp, esi
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x204]
inc ebx
mov edx, dword [edi + ecx]
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 + ecx - 4]
add esi, edx
cmp esi, edx
mov dword [edi + ebp - 4], esi
setb al
add edi, 0xfffffff8
cmp ebx, dword [esp + 0x200]
jb 0x4bc9a3
mov dword [esp + 0x8c], eax
lea edx, [ebx + ebx + 1]
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x4bca3d
shl edx, 2
lea ebx, [esp + ebp*4 + 0x4ac]
neg edx
lea esi, [esp + ebp*4 + 0x46c]
mov eax, dword [esp + 0x8c]
add eax, dword [edx + ebx + 4]
lea ebx, [esp + ebp*4 + 0x7ac]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x7c]
mov eax, dword [edx]
jmp 0x4bca43
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
test eax, eax
jne 0x4bca6b
mov edx, dword [esp + 0x80]
dec edx
lea eax, [esp + edx*4 + 0x7ac]
cmp dword [eax], 0
je 0x4bca4e
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], eax
mov eax, edx
lea ebp, [eax - 1]
mov eax, dword [esp + 0x7b0]
test eax, eax
jle 0x4bcb13
add eax, eax
dec ecx
mov dword [esp + 0x7b0], eax
cmp dword [esp + 0x80], 2
jb 0x4bcb13
mov eax, dword [esp + 0x80]
lea edx, [eax - 1]
shr edx, 1
je 0x4bdd14
mov dword [esp + 0x278], edi
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x7b4]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ebx*8 + 0x7b0], esi
mov esi, dword [esp + ebx*8 + 0x7b8]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ebx*8 + 0x7b4], eax
mov dword [esp + ebx*8 + 0x7b8], esi
inc ebx
cmp ebx, edx
jb 0x4bcaad
mov edi, dword [esp + 0x278]
lea ebx, [ebx + ebx + 1]
lea eax, [ebx - 1]
cmp eax, ebp
jae 0x4bcb13
mov edx, dword [esp + ebx*4 + 0x7b0]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ebx*4 + 0x7ac], eax
mov dword [esp + ebx*4 + 0x7b0], edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x1e8]
shr edx, 5
cmp dword [eax], 0
je 0x4bcb2d
mov ebp, dword [esp + 0x80]
cmp ebp, edx
jb 0x4bcbe7
mov ebp, edx
mov eax, edx
mov edx, dword [esp + eax*4 + 0x7b0]
shr edx, 0x1f
mov esi, eax
lea ebx, [esi*4]
lea esi, [esp + esi*4 + 0x7ac]
mov eax, dword [esi]
add eax, edx
mov dword [esp + 8], eax
cmp eax, edx
jae 0x4bcbc8
mov eax, ebp
mov ebp, dword [esp + 8]
mov dword [esi], ebp
mov dword [esp + 0x7ac], 0
lea ebx, [eax*4 - 4]
lea esi, [esp + ebx + 0x7ac]
lea ebp, [eax - 1]
mov eax, dword [esi]
cmp eax, 0xffffffff
jne 0x4bcba0
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x4bcb8a
test ebp, ebp
je 0x4bcba9
inc eax
mov dword [esi], eax
jmp 0x4bcbf5
mov dword [esp + 0x7b0], 0x80000000
inc ecx
mov ebp, 1
mov ebx, 4
lea esi, [esp + 0x7b0]
jmp 0x4bcbf5
mov dword [esi], eax
cmp dword [esp + 8], 0
jne 0x4bcbf5
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bcbd1
jmp 0x4bcbf5
lea ebx, [ebp*4]
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esp + 0x208], 0
je 0x4bd12d
mov eax, dword [esp + 0x208]
lea edx, [ebp + eax]
mov dword [esp + 0x60], edx
mov edx, dword [esi]
lea ebx, [ebp + eax - 1]
mov eax, dword [esp + eax*4 + 0x7ec]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mul dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + ebx*4 + 0x3ec], eax
mov eax, dword [esp + 0x208]
mov dword [esp + ebx*4 + 0x3f0], edx
lea ebx, [eax - 1]
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x198], ebp
xor ebp, ebp
mov dword [esp + 0x278], edi
mov ecx, dword [esp + 0x64]
mov eax, dword [esi]
mov edx, dword [esp + ebx*4 + 0x7ec]
mov dword [esp + ecx*4 + 0x42c], 0
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], edx
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, ebp
mov edi, dword [esp + ecx*4 + 0x3ec]
add edi, edx
cmp edi, edx
mov dword [esp + ecx*4 + 0x3ec], edi
setb al
dec ecx
add eax, dword [esp + 0x238]
mov dword [esp + ecx*4 + 0x3ec], eax
dec ebx
jne 0x4bcc7a
mov dword [esp + 0x64], ecx
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x64]
mov dword [esp + eax*4 + 0x42c], 0
dec eax
js 0x4bcd9b
mov edx, dword [esp + 0x64]
shr edx, 1
je 0x4bdd0a
mov eax, dword [esp + 0x64]
xor esi, esi
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
lea ebx, [esp + eax*4 + 0x3e8]
mov ecx, esi
lea eax, [esp + eax*4 + 0x428]
xor edi, edi
inc esi
mov dword [ecx + eax], edi
mov dword [ecx + ebx], edi
mov dword [ecx + eax - 4], edi
mov dword [ecx + ebx - 4], edi
add ecx, 0xfffffff8
cmp esi, edx
jb 0x4bcd49
mov ecx, dword [esp + 0x19c]
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x278]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x64]
jae 0x4bcd9b
shl edx, 2
xor eax, eax
mov esi, dword [esp + 0x64]
neg edx
lea ebx, [esp + esi*4 + 0x428]
mov dword [edx + ebx + 4], eax
lea ebx, [esp + esi*4 + 0x3e8]
mov dword [edx + ebx + 4], eax
mov ebx, ebp
dec ebx
je 0x4bce6d
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
mov eax, dword [esp + 0x208]
mov ebp, eax
test eax, eax
je 0x4bce51
lea esi, [esp + ebx*4 + 0x42c]
lea ecx, [esp + ebx*4 + 0x3ec]
mov eax, dword [esp + ebx*4 + 0x7ac]
mov edx, dword [esp + ebp*4 + 0x7ec]
mov dword [esp + 0x314], eax
mov dword [esp + 0x318], edx
mov eax, dword [esp + 0x314]
mul dword [esp + 0x318]
mov dword [esp + 0x31c], eax
mov dword [esp + 0x320], edx
mov edx, dword [esp + 0x31c]
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 + 0x320]
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 0x4bcdd8
mov eax, dword [esp + 0x208]
dec ebx
jne 0x4bcdc0
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
mov eax, dword [esp + 0x208]
mov edx, dword [esp + 0x60]
add ecx, dword [esp + 0xd8]
lea ebp, [ebp + eax - 1]
mov eax, dword [esp + edx*4 + 0x3ec]
lea ebx, [esp + edx*4 + 0x7ac]
mov dword [esp + 0x48], ebx
mov dword [ebx], eax
cmp edx, 1
je 0x4bcf8e
mov eax, ebp
mov dword [esp + 0x4c], 0
shr eax, 1
je 0x4bdd00
xor esi, esi
lea edx, [esp + ebp*4 + 0x42c]
mov dword [esp + 0x18c], edx
lea edx, [esp + ebp*4 + 0x7ac]
lea ebx, [esp + ebp*4 + 0x3ec]
mov dword [esp + 0x188], eax
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
mov dword [esp + 0x198], ebp
mov edi, esi
mov ecx, edx
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x18c]
inc esi
mov edx, dword [edi + ebx]
add eax, dword [edi + ebp]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [edi + ecx], edx
mov edx, eax
setb dl
add edx, dword [edi + ebp - 4]
mov ebp, dword [edi + ebx - 4]
add ebp, edx
cmp ebp, edx
mov dword [edi + ecx - 4], ebp
setb al
add edi, 0xfffffff8
cmp esi, dword [esp + 0x188]
jb 0x4bcef4
mov dword [esp + 0x4c], eax
lea edx, [esi + esi + 1]
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
lea eax, [edx - 1]
cmp eax, ebp
jae 0x4bcf88
shl edx, 2
lea ebx, [esp + ebp*4 + 0x42c]
neg edx
lea esi, [esp + ebp*4 + 0x3ec]
mov eax, dword [esp + 0x4c]
add eax, dword [edx + ebx + 4]
lea ebx, [esp + ebp*4 + 0x7ac]
add eax, dword [edx + esi + 4]
mov dword [edx + ebx + 4], eax
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
jmp 0x4bcf8e
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
jne 0x4bcfb0
mov edx, dword [esp + 0x60]
dec edx
lea eax, [esp + edx*4 + 0x7ac]
cmp dword [eax], 0
je 0x4bcf96
mov dword [esp + 0x60], edx
mov dword [esp + 0x48], eax
mov eax, edx
lea ebp, [eax - 1]
mov eax, dword [esp + 0x7b0]
test eax, eax
jle 0x4bd04e
add eax, eax
dec ecx
mov dword [esp + 0x7b0], eax
cmp dword [esp + 0x60], 2
jb 0x4bd04e
mov eax, dword [esp + 0x60]
lea edx, [eax - 1]
shr edx, 1
je 0x4bdcf6
mov dword [esp + 0x278], edi
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x7b4]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ebx*8 + 0x7b0], esi
mov esi, dword [esp + ebx*8 + 0x7b8]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ebx*8 + 0x7b4], eax
mov dword [esp + ebx*8 + 0x7b8], esi
inc ebx
cmp ebx, edx
jb 0x4bcfe8
mov edi, dword [esp + 0x278]
lea ebx, [ebx + ebx + 1]
lea eax, [ebx - 1]
cmp eax, ebp
jae 0x4bd04e
mov edx, dword [esp + ebx*4 + 0x7b0]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ebx*4 + 0x7ac], eax
mov dword [esp + ebx*4 + 0x7b0], edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x1e8]
shr edx, 5
cmp dword [eax], 0
je 0x4bd065
mov ebp, dword [esp + 0x60]
cmp ebp, edx
jb 0x4bd11f
mov ebp, edx
mov eax, edx
mov edx, dword [esp + eax*4 + 0x7b0]
shr edx, 0x1f
mov esi, eax
lea ebx, [esi*4]
lea esi, [esp + esi*4 + 0x7ac]
mov eax, dword [esi]
add eax, edx
mov dword [esp + 4], eax
cmp eax, edx
jae 0x4bd100
mov eax, ebp
mov ebp, dword [esp + 4]
mov dword [esi], ebp
mov dword [esp + 0x7ac], 0
lea ebx, [eax*4 - 4]
lea esi, [esp + ebx + 0x7ac]
lea ebp, [eax - 1]
mov eax, dword [esi]
cmp eax, 0xffffffff
jne 0x4bd0d8
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x4bd0c2
test ebp, ebp
je 0x4bd0e1
inc eax
mov dword [esi], eax
jmp 0x4bd12d
mov dword [esp + 0x7b0], 0x80000000
inc ecx
mov ebp, 1
mov ebx, 4
lea esi, [esp + 0x7b0]
jmp 0x4bd12d
mov dword [esi], eax
cmp dword [esp + 4], 0
jne 0x4bd12d
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bd109
jmp 0x4bd12d
lea ebx, [ebp*4]
lea esi, [esp + ebp*4 + 0x7ac]
test edi, edi
je 0x4bd63d
mov eax, dword [esi]
lea ebx, [edi + ebp - 1]
mov edx, dword [esp + edi*4 + 0x76c]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
mov eax, dword [esp + 0x108]
mul dword [esp + 0x10c]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edx
mov eax, dword [esp + 0x114]
mov dword [esp + ebx*4 + 0x56c], eax
mov eax, edi
mov edx, dword [esp + 0x110]
mov dword [esp + ebx*4 + 0x570], edx
dec eax
je 0x4bd22d
mov dword [esp + 0x198], ebp
xor ebp, ebp
mov dword [esp + 0x19c], ecx
mov ecx, eax
mov dword [esp + 0x278], edi
mov edx, dword [esi]
mov edi, dword [esp + ecx*4 + 0x76c]
mov dword [esp + ebx*4 + 0x5ac], 0
mov dword [esp + 0x294], edx
mov dword [esp + 0x298], edi
mov eax, dword [esp + 0x294]
mul dword [esp + 0x298]
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a0], edx
mov edx, dword [esp + 0x29c]
mov eax, ebp
mov edi, dword [esp + ebx*4 + 0x56c]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0x56c], edi
setb al
dec ebx
add eax, dword [esp + 0x2a0]
mov dword [esp + ebx*4 + 0x56c], eax
dec ecx
jne 0x4bd1aa
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
mov eax, ebx
mov dword [esp + ebx*4 + 0x5ac], 0
dec eax
js 0x4bd2d7
mov edx, ebx
shr edx, 1
je 0x4bdcc6
xor eax, eax
lea esi, [esp + ebx*4 + 0x568]
mov dword [esp + 0xfc], esi
lea esi, [esp + ebx*4 + 0x5a8]
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x278], edi
xor edi, edi
mov ecx, eax
mov ebp, esi
mov esi, dword [esp + 0xfc]
inc eax
mov dword [ecx + ebp], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebp - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x4bd284
mov ebp, dword [esp + 0x198]
lea edx, [eax + eax + 1]
mov ecx, dword [esp + 0x19c]
mov edi, dword [esp + 0x278]
lea eax, [edx - 1]
cmp eax, ebx
jae 0x4bd2d7
shl edx, 2
lea esi, [esp + ebx*4 + 0x5a8]
neg edx
lea ebx, [esp + ebx*4 + 0x568]
xor eax, eax
mov dword [edx + esi + 4], eax
mov dword [edx + ebx + 4], eax
mov ebx, ebp
dec ebx
je 0x4bd39d
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov ecx, edi
test edi, edi
je 0x4bd388
mov dword [esp + 0x278], edi
lea esi, [esp + ebx*4 + 0x5ac]
lea ebp, [esp + ebx*4 + 0x56c]
mov eax, dword [esp + ebx*4 + 0x7ac]
mov edx, dword [esp + ecx*4 + 0x76c]
mov dword [esp + 0x344], eax
mov dword [esp + 0x348], edx
mov eax, dword [esp + 0x344]
mul dword [esp + 0x348]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x350], edx
mov edx, dword [esp + 0x34c]
mov edi, dword [ebp + ecx*4]
add edi, edx
mov dword [ebp + ecx*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x350]
mov edx, dword [ebp + ecx*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ebp + ecx*4 - 4], edx
setb al
add dword [esi + ecx*4 - 8], eax
dec ecx
jne 0x4bd30d
mov edi, dword [esp + 0x278]
dec ebx
jne 0x4bd2ee
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
add ecx, dword [esp + 0x158]
lea edx, [ebp + edi]
mov ebx, dword [esp + edx*4 + 0x56c]
lea eax, [esp + edx*4 + 0x7ac]
mov dword [esp + 0x100], eax
lea ebp, [ebp + edi - 1]
mov dword [eax], ebx
cmp edx, 1
je 0x4bd4e6
mov ebx, ebp
mov dword [esp + 0x104], 0
shr ebx, 1
je 0x4bdcbc
xor eax, eax
lea esi, [esp + ebp*4 + 0x56c]
mov dword [esp + 0xa8], esi
lea edi, [esp + ebp*4 + 0x7ac]
mov dword [esp + 0xa4], edi
lea esi, [esp + ebp*4 + 0x5ac]
mov dword [esp + 0x224], ebx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x198], ebp
mov dword [esp + 0x228], esi
mov dword [esp + 0x19c], ecx
mov edi, eax
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov edx, dword [esp + 0x104]
mov esi, dword [esp + 0x228]
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 0x4bd440
mov dword [esp + 0x104], edx
lea ebx, [eax + eax + 1]
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
lea eax, [ebx - 1]
cmp eax, ebp
jae 0x4bd4dd
shl ebx, 2
lea esi, [esp + ebp*4 + 0x5ac]
neg ebx
lea edi, [esp + ebp*4 + 0x56c]
mov eax, dword [esp + 0x104]
add eax, dword [ebx + esi + 4]
lea esi, [esp + ebp*4 + 0x7ac]
add eax, dword [ebx + edi + 4]
mov dword [ebx + esi + 4], eax
mov ebx, dword [esp + 0x100]
mov ebx, dword [ebx]
jmp 0x4bd4e6
mov eax, dword [esp + 0x100]
mov ebx, dword [eax]
test ebx, ebx
jne 0x4bd501
dec edx
lea eax, [esp + edx*4 + 0x7ac]
cmp dword [eax], 0
je 0x4bd4ea
mov dword [esp + 0x100], eax
lea ebp, [edx - 1]
mov eax, dword [esp + 0x7b0]
test eax, eax
jle 0x4bd599
add eax, eax
dec ecx
mov dword [esp + 0x7b0], eax
cmp edx, 2
jb 0x4bd599
lea ebx, [edx - 1]
shr ebx, 1
je 0x4bdcb2
mov dword [esp + 0x19c], ecx
xor esi, esi
mov eax, dword [esp + esi*8 + 0x7b4]
mov ecx, eax
shr ecx, 0x1f
add eax, eax
or dword [esp + esi*8 + 0x7b0], ecx
mov ecx, dword [esp + esi*8 + 0x7b8]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or eax, edi
mov dword [esp + esi*8 + 0x7b4], eax
mov dword [esp + esi*8 + 0x7b8], ecx
inc esi
cmp esi, ebx
jb 0x4bd533
mov ecx, dword [esp + 0x19c]
lea esi, [esi + esi + 1]
lea eax, [esi - 1]
cmp eax, ebp
jae 0x4bd599
mov ebx, dword [esp + esi*4 + 0x7b0]
mov eax, ebx
shr eax, 0x1f
add ebx, ebx
or dword [esp + esi*4 + 0x7ac], eax
mov dword [esp + esi*4 + 0x7b0], ebx
mov eax, dword [esp + 0x100]
mov edi, dword [esp + 0x1e8]
shr edi, 5
cmp dword [eax], 0
je 0x4bd5b1
mov ebp, edx
cmp ebp, edi
jb 0x4bb63a
mov ebp, edi
mov eax, dword [esp + edi*4 + 0x7b0]
shr eax, 0x1f
lea esi, [esp + edi*4 + 0x7ac]
mov edx, dword [esi]
lea ebx, [edi*4]
add edx, eax
cmp edx, eax
jae 0x4bd623
mov dword [esi], edx
lea ebx, [edi*4 - 4]
mov dword [esp + 0x7ac], 0
lea esi, [esp + ebx + 0x7ac]
mov eax, dword [esi]
lea ebp, [edi - 1]
cmp eax, 0xffffffff
jne 0x4bd616
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
mov eax, dword [esi]
lea ebx, [ebp*4]
cmp eax, 0xffffffff
je 0x4bd600
test ebp, ebp
jne 0x4bb5dc
jmp 0x4bb5eb
mov dword [esi], edx
test edx, edx
jne 0x4bd63d
dec ebp
lea esi, [esp + ebp*4 + 0x7ac]
cmp dword [esi], 0
lea ebx, [ebp*4]
je 0x4bd629
mov eax, dword [esp + 0x670]
mov dword [esp + 0x1b0], eax
mov eax, dword [esi]
mov esi, ebp
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x1b0]
mul dword [esp + 0x1b4]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], edx
mov edi, dword [esp + 0x1b8]
lea eax, [esp + ebp*4 + 0x6ac]
mov dword [eax + 4], edi
mov edi, ebp
mov edx, dword [esp + 0x1bc]
mov dword [eax], edx
dec edi
je 0x4bd734
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x670]
mov edx, dword [esp + esi*4 + 0x7a8]
mov dword [esp + esi*4 + 0x6ec], 0
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2ec], edx
mov eax, dword [esp + 0x2e8]
mul dword [esp + 0x2ec]
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2f4], edx
mov edx, dword [esp + 0x2f0]
mov eax, ecx
mov ebp, dword [esp + esi*4 + 0x6ac]
add ebp, edx
cmp ebp, edx
mov dword [esp + esi*4 + 0x6ac], ebp
setb al
dec esi
add eax, dword [esp + 0x2f4]
mov dword [esp + esi*4 + 0x6ac], eax
dec edi
jne 0x4bd6ac
mov eax, dword [esp + 0x1a0]
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
mov edx, esi
mov dword [esp + esi*4 + 0x6ec], 0
dec edx
js 0x4bd814
mov edx, esi
shr edx, 1
mov dword [esp + 0x1c4], edx
je 0x4bdcec
xor edx, edx
lea edi, [esp + esi*4 + 0x6a8]
mov dword [esp + 0x1ac], edi
lea edi, [esp + esi*4 + 0x6e8]
mov dword [esp + 0x1a8], edi
xor edi, edi
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], esi
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ecx
mov eax, edx
mov ecx, dword [esp + 0x1a8]
mov ebp, dword [esp + 0x1ac]
mov esi, dword [esp + 0x1c4]
inc edx
mov dword [eax + ecx], edi
mov dword [eax + ebp], edi
mov dword [eax + ecx - 4], edi
mov dword [eax + ebp - 4], edi
add eax, 0xfffffff8
cmp edx, esi
jb 0x4bd7ac
mov eax, dword [esp + 0x1a0]
lea edi, [edx + edx + 1]
mov esi, dword [esp + 0x1a4]
mov ebp, dword [esp + 0x198]
mov ecx, dword [esp + 0x19c]
lea edx, [edi - 1]
cmp edx, esi
jae 0x4bd814
shl edi, 2
xor edx, edx
neg edi
mov dword [esp + 0x194], ebx
lea ebx, [esp + esi*4 + 0x6e8]
lea esi, [esp + esi*4 + 0x6a8]
mov dword [edi + ebx + 4], edx
mov dword [edi + esi + 4], edx
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x1c8]
lea edi, [ebp + 1]
mov edx, dword [esp + ebx + 0x6b0]
mov dword [esp + ebx + 0x670], edx
lea esi, [ecx + esi - 0x7e]
test ebp, ebp
je 0x4bd917
mov edx, ebp
mov dword [esp + 0x1c0], 0
shr edx, 1
je 0x4bdce2
xor ebx, ebx
lea ecx, [esp + ebp*4 + 0x6ec]
mov dword [esp + 0x2e0], ecx
lea ecx, [esp + ebp*4 + 0x66c]
mov dword [esp + 0x2e4], edx
mov dword [esp + 0x190], edi
mov dword [esp + 0x198], ebp
mov dword [esp + 0x2d4], esi
mov edi, ebx
mov ebp, ecx
mov edx, dword [esp + 0x1c0]
mov esi, dword [esp + 0x2e0]
inc ebx
mov ecx, dword [edi + eax]
add edx, dword [edi + esi]
add ecx, edx
cmp ecx, edx
mov edx, 0
mov dword [edi + ebp], ecx
mov ecx, edx
setb cl
add ecx, dword [edi + esi - 4]
mov esi, dword [edi + eax - 4]
add esi, ecx
cmp esi, ecx
mov dword [edi + ebp - 4], esi
setb dl
add edi, 0xfffffff8
cmp ebx, dword [esp + 0x2e4]
jb 0x4bd88b
mov dword [esp + 0x1c0], edx
lea ebx, [ebx + ebx + 1]
mov edi, dword [esp + 0x190]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0x2d4]
lea edx, [ebx - 1]
cmp edx, ebp
jae 0x4bd917
shl ebx, 2
lea ecx, [esp + ebp*4 + 0x6ec]
sub eax, ebx
neg ebx
mov edx, dword [esp + 0x1c0]
add edx, dword [ebx + ecx + 4]
add edx, dword [eax + 4]
lea eax, [esp + ebp*4 + 0x66c]
mov dword [ebx + eax + 4], edx
lea edx, [esp + ebp*4 + 0x670]
mov ebx, dword [edx]
test ebx, ebx
jne 0x4bd932
dec edi
lea edx, [esp + edi*4 + 0x66c]
mov ebx, dword [edx]
test ebx, ebx
je 0x4bd924
mov eax, dword [esp + 0x670]
test eax, eax
jle 0x4bdcda
add eax, eax
dec esi
mov dword [esp + 0x670], eax
cmp edi, 2
jb 0x4bd9d9
lea ebx, [edi - 1]
shr ebx, 1
je 0x4bdcd0
mov dword [esp + 0x2d4], esi
xor ebp, ebp
mov eax, dword [esp + ebp*8 + 0x674]
mov ecx, eax
shr ecx, 0x1f
add eax, eax
or dword [esp + ebp*8 + 0x670], ecx
mov ecx, dword [esp + ebp*8 + 0x678]
mov esi, ecx
shr esi, 0x1f
add ecx, ecx
or eax, esi
mov dword [esp + ebp*8 + 0x674], eax
mov dword [esp + ebp*8 + 0x678], ecx
inc ebp
cmp ebp, ebx
jb 0x4bd968
mov esi, dword [esp + 0x2d4]
lea ebx, [ebp + ebp + 1]
lea eax, [edi - 1]
lea ebp, [ebx - 1]
cmp ebp, eax
jae 0x4bd9d5
mov ecx, dword [esp + ebx*4 + 0x670]
mov ebp, ecx
shr ebp, 0x1f
add ecx, ecx
or dword [esp + ebx*4 + 0x66c], ebp
mov dword [esp + ebx*4 + 0x670], ecx
mov ebx, dword [edx]
jmp 0x4bd9de
mov ebx, dword [edx]
jmp 0x4bd9de
mov ebx, dword [edx]
lea eax, [edi - 1]
test ebx, ebx
je 0x4ba8ba
mov eax, edi
jmp 0x4ba8ba
mov ecx, eax
shr ecx, 1
je 0x4bda20
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 0x4bd9fa
lea ecx, [ebx + ebx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x4ba0d8
mov byte [ecx + ebp - 1], 0x30
jmp 0x4ba0d8
mov ecx, 1
jmp 0x4bda0b
mov edx, dword [esp + 0x860]
dec edi
inc dword [edx]
cmp dword [esp + 0x184], 0
je 0x4bda3e
mov byte [edi], 0x38
test byte [esp + 0x850], 2
je 0x4ba463
mov ecx, dword [esp + 0x254]
inc ecx
mov edx, dword [esp + 0x848]
cmp ecx, edx
jl 0x4bda61
mov ecx, edx
mov dword [esp + 0x254], ecx
jmp 0x4ba463
call fcn.004cf95b
mov edx, eax
shr edx, 1
je 0x4bdab4
mov dword [esp + 0x2d8], 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 0x4bda88
mov ebp, dword [esp + 0x2d8]
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x4ba4a8
mov byte [ecx + esi - 1], 0x30
jmp 0x4ba4a8
mov ecx, 1
jmp 0x4bda9f
mov edx, ecx
mov ecx, ebp
mov dword [esp + 0xc], edi
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x1d4]
mov ebp, dword [esp + 0x2d8]
test ecx, ecx
je 0x4ba3d4
jmp 0x4ba3dc
cmp dword [esp + 0x14c], 0
jne 0x4bdb22
cmp dword [esp + 0x148], 0
je 0x4bdb00
cmp dword [esp + 0x254], 0
js 0x4bdb22
cmp dword [esp + 0x144], 0
jne 0x4bdb42
mov eax, dword [esp + 0x860]
mov ebx, ebp
neg ebx
mov dword [eax], ebp
je 0x4ba6ab
jmp 0x4ba70c
fstp st(0)
mov edx, dword [esp + 0x860]
mov dword [esp + 0x154], ebp
mov eax, ebp
mov ebp, dword [esp + 0x2d8]
mov dword [edx], eax
jmp 0x4ba025
fstp st(0)
mov ecx, dword [esp + 0x1d8]
add ecx, 4
mov edx, dword [esp + 0x1d0]
shr edx, cl
mov dword [esp + 0x154], ebp
mov edi, dword [esp + 0x1d4]
mov ebp, dword [esp + 0x2d8]
test dl, 1
je 0x4bdb94
mov edx, eax
xor eax, eax
test edx, edx
mov ecx, dword [esp + 0x860]
sete al
mov esi, edi
mov byte [ebp], 0x31
sub eax, edx
mov dword [ecx], eax
xor edx, edx
mov edi, ebp
jmp 0x4ba4ae
mov edx, dword [esp + 0x860]
mov eax, dword [esp + 0x154]
mov dword [edx], eax
jmp 0x4ba025
mov ecx, 1
jmp 0x4bab36
mov ebx, 8
lea esi, [esp + 0x7b4]
jmp 0x4bd644
mov eax, dword [esp + 0x670]
mov ebx, 8
lea esi, [esp + 0x7b4]
jmp 0x4bd644
mov esi, 1
jmp 0x4bb540
mov ebx, 1
jmp 0x4bb449
mov eax, 1
jmp 0x4bb270
mov ecx, 8
lea ebx, [esp + 0x7b4]
jmp 0x4bb158
mov ebp, edx
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 0x4bdc2a
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 + 0x12c], esi
mov dword [esp + 0x7f0], edi
jmp 0x4bb105
mov edx, 1
jmp 0x4bbce3
mov edx, 1
jmp 0x4bbbbb
mov edx, 1
jmp 0x4bb986
mov edx, 1
jmp 0x4bc34d
mov edx, 1
jmp 0x4bc24f
mov edx, 1
jmp 0x4bc059
mov ebx, 0x10
lea esi, [esp + 0x7bc]
jmp 0x4bd12d
mov esi, 1
jmp 0x4bd576
mov ebx, 1
jmp 0x4bd49e
mov edx, 1
jmp 0x4bd2b3
mov ebx, 1
jmp 0x4bd9ab
lea eax, [edi - 1]
jmp 0x4bd9de
mov ebx, 1
jmp 0x4bd8e9
mov edi, 1
jmp 0x4bd7e2
mov ebx, 1
jmp 0x4bd02b
mov edx, 1
jmp 0x4bcf4f
mov edx, 1
jmp 0x4bcd71
mov ebx, 1
jmp 0x4bcaf0
mov edx, 1
jmp 0x4bca01
mov edx, 1
jmp 0x4bc805
mov ebx, 8
lea esi, [esp + 0x7b4]
jmp 0x4bc678
mov ebx, 0x1b
jmp 0x4bc633
xor eax, eax
mov dword [esp + 0x734], eax
mov dword [esp + 0x730], eax
jmp 0x4bc633
mov eax, dword [0x50afcc]
xor ecx, ecx
mov edx, dword [0x50afc8]
lea esi, [esp + 0x7bc]
mov ebx, dword [0x50afc4]
mov ebp, dword [0x50afc0]
mov dword [esi - 0x88], ecx
mov dword [esi - 0x8c], ecx
movsx ecx, word [0x50b142]
mov dword [esi - 0xc], eax
mov dword [esi - 8], edx
mov dword [esi - 4], ebx
mov ebx, 0x10
mov dword [esi], ebp
mov ebp, 4
jmp 0x4bcbf5
mov ecx, ebx
neg ecx
mov ebp, ecx
sar ebp, 3
mov dword [esp + 0x208], 4
movzx edx, word [ebp*2 + 0x50aee0]
lea esi, [ebp + 1]
shr edx, 5
cmp edx, ecx
jl 0x4bddd7
mov esi, ebp
movzx edx, word [esi*2 + 0x50aee0]
mov eax, edx
and eax, 0x1f
shr edx, 5
add ebx, edx
movsx ecx, word [eax*2 + 0x50b126]
shl eax, 4
mov dword [esp + 0xd8], ecx
mov ebp, dword [eax + 0x50ae4c]
mov esi, dword [eax + 0x50ae48]
mov edx, dword [eax + 0x50ae44]
mov eax, dword [eax + 0x50ae40]
mov dword [esp + 0x7f0], ebp
mov dword [esp + 0x7f4], esi
mov dword [esp + 0x7f8], edx
mov dword [esp + 0x7fc], eax
jmp 0x4bc5be
mov edx, dword [esp + 0x1d8]
mov eax, 1
mov edi, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1dc]
mov ebp, dword [esp + 0x2d8]
lea ecx, [edx + ebx*2 + 1]
mov ebx, dword [esp + 0x1d0]
shr ebx, cl
mov dword [esp + 4], 0x39
and ebx, 1
jmp 0x4ba421
mov ebx, dword [esp + 0x1e0]
mov eax, 1
mov edi, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1dc]
mov ebp, dword [esp + 0x2d8]
mov dword [esp + 4], 0x39
jmp 0x4ba421
xor eax, eax
test ebp, ebp
setge al
mov dword [esp + 0x1f0], eax
jmp 0x4baea6
mov dword [esp + 0x174], 1
jmp 0x4bae14
mov ebx, 1
jmp 0x4ba9a1
mov dword [esp + 0x670], 0
jmp 0x4ba092