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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x3b4
xor esi, esi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x18c], eax
mov dword [esp + 0x9c], ecx
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x188], ebx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x184], eax
mov edx, dword [0x52ec00]
xor edx, esp
mov dword [esp + 0x3b0], edx
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x2e0], esi
mov dword [esp + 0x2e4], esi
mov dword [esp + 0x2e8], esi
mov dword [esp + 0x2ec], esi
mov dword [esp + 0x2f0], esi
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2f8], esi
mov dword [esp + 0x2fc], esi
mov dword [esp + 0x33c], esi
mov dword [esp + 0x300], esi
mov dword [esp + 0x340], esi
mov dword [esp + 0x304], esi
mov dword [esp + 0x344], esi
mov dword [esp + 0x308], esi
mov dword [esp + 0x348], esi
mov dword [esp + 0x30c], esi
mov dword [esp + 0x34c], esi
mov dword [esp + 0x310], esi
mov dword [esp + 0x350], esi
mov dword [esp + 0x314], esi
mov dword [esp + 0x354], esi
mov dword [esp + 0x318], esi
mov dword [esp + 0x358], esi
mov dword [esp + 0x31c], esi
mov dword [esp + 0x35c], esi
mov dword [esp + 0x3ac], esi
mov dword [esp + 0x3a8], esi
mov dword [esp + 0x3a0], esi
mov dword [esp + 0x3a4], esi
mov dword [esp + 0x320], esi
mov dword [esp + 0x324], esi
mov dword [esp + 0x328], esi
mov dword [esp + 0x32c], esi
mov dword [esp + 0x330], esi
mov dword [esp + 0x334], esi
mov dword [esp + 0x338], esi
test ebx, 0x8010000
je 0x4b0642
test dword [esp + 0x188], 0x10000
je 0x4b063b
lea eax, [ebp + 0x2b]
and eax, 0xfffffffc
movsx esi, byte [eax]
jmp 0x4b0647
mov esi, 0x2c
jmp 0x4b0647
mov esi, 0x2e
cmp dword [esp + 0xa4], 0
jle 0x4b4de5
mov ecx, ebx
mov eax, ecx
and eax, 0x80
mov edx, ecx
mov ebx, eax
and edx, 0x80000000
shl eax, 0x18
and edx, eax
shl ebx, 4
shr edx, 0x13
or ebx, edx
movsx eax, byte [edi]
test cl, 0x20
je 0x4b06b3
lea edx, [eax - 9]
cmp edx, 4
ja 0x4b4dd9
mov edx, dword [esp + 0xa4]
lea eax, [edi + 1]
mov edi, eax
dec edx
je 0x4b4daa
movsx eax, byte [eax]
lea ecx, [eax - 9]
cmp ecx, 4
jbe 0x4b0690
cmp eax, 0x20
je 0x4b0690
mov dword [esp + 0xa4], edx
mov dword [esp + 0x98], edi
cmp eax, 0x2d
jne 0x4b06c4
add ebx, 8
jmp 0x4b06c9
cmp eax, 0x2b
jne 0x4b06da
add ebx, 2
inc edi
dec dword [esp + 0xa4]
je 0x4b42ab
xor edx, edx
mov eax, 9
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x160], edx
mov dword [esp + 0x28], 5
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], esi
movsx edx, byte [edi]
lea eax, [edx - 0x2b]
cmp eax, 0x4d
ja 0x4b09db
movzx eax, word [eax*2 + 0x5081e4]
add eax, 0x4b073c
jmp eax
cmp edx, 9
jne 0x4b09f0
test byte [esp + 0x188], 1
jne 0x4b0aeb
jmp 0x4b0a0d
cmp edx, 0x20
jne 0x4b0a0d
test byte [esp + 0x188], 2
jne 0x4b0aeb
test byte [esp + 0x188], 0x40
jne 0x4b0a30
cmp edx, dword [esp + 0x60]
jne 0x4b46ca
test bl, 1
jne 0x4b46ca
mov dword [esp + 0x78], 0
or ebx, 1
jmp 0x4b0aeb
mov edx, 0x30
cmp dword [esp + 0x74], 0
je 0x4b0ad8
add edx, 0xffffffd0
or ebx, 4
xor eax, eax
mov ecx, ebx
and ecx, 0x201
cmp ecx, 0x200
mov esi, dword [esp + 0x78]
sete al
neg eax
mov ecx, dword [esp + 0x94]
inc dword [esp + 0x74]
lea eax, [esi + eax + 1]
mov dword [esp + 0x78], eax
cmp ecx, dword [esp + 0x2c]
je 0x4b0a9c
mov esi, dword [esp + 0x90]
mov eax, esi
mov ecx, dword [esp + 0x14]
shl eax, cl
inc dword [esp + 0x94]
lea eax, [eax + esi*8]
add eax, edx
mov dword [esp + 0x90], eax
jmp 0x4b0aeb
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x28]
jae 0x4b0acf
mov ecx, eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x90], edx
mov dword [esp + ecx*4 + 0x2e4], eax
inc ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x94], 1
jmp 0x4b0aeb
or dword [esp + 0x160], edx
jmp 0x4b0aeb
mov eax, ebx
or ebx, 4
and eax, 1
add dword [esp + 0x78], eax
xor eax, 1
add dword [esp + 0x10], eax
inc edi
dec dword [esp + 0xa4]
jne 0x4b071e
mov edx, dword [esp + 0x94]
mov dword [esp + 0x60], 0
mov esi, edi
test bl, 4
mov eax, ebx
jne 0x4b0b18
mov esi, dword [esp + 0x98]
and eax, 0x40
je 0x4b0b1f
mov esi, edi
test dword [esp + 0x188], 0x8000
je 0x4b0b5f
test dword [esp + 0x188], 0x80000000
je 0x4b0b4a
cmp dword [esp + 0xa4], 0
je 0x4b0b5f
cmp byte [edi], 0
jne 0x4b0b54
jmp 0x4b0b5f
cmp dword [esp + 0xa4], 0
je 0x4b0b5f
or ebx, 0x3000000
jmp 0x4b4072
mov ecx, ebx
and ecx, 0x200
mov dword [esp], ecx
je 0x4b0b76
mov ecx, ebx
and ecx, 0x54
cmp ecx, 0x54
jne 0x4b0b54
cmp dword [esp + 0x74], 0
jne 0x4b0bb8
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x4b0b92
xor dword [esp + 0x3ac], 0x80000000
mov eax, dword [esp + 0x188]
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x4b4072
mov ebx, edx
jmp 0x4b4072
test bl, 0x20
je 0x4b0bc1
test eax, eax
je 0x4b0b54
test bl, 0x10
je 0x4b0c1a
cmp dword [esp + 0x2c], 6
jbe 0x4b0be7
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
test ebx, 0x80
jne 0x4b3c94
jmp 0x4b3b2b
mov ecx, dword [esp + 0x60]
mov eax, ecx
neg eax
test ebx, 0x80
jne 0x4b0bf9
mov eax, ecx
test dword [esp + 0x188], 0x400
mov ecx, dword [esp + 0xa0]
jne 0x4b0c12
mov ecx, 0
sub eax, ecx
mov dword [esp + 0xc], eax
jmp 0x4b0c27
mov eax, dword [esp + 0xa0]
neg eax
mov dword [esp + 0xc], eax
cmp dword [esp], 0
je 0x4b0ea7
shl edx, 2
neg edx
mov ecx, edx
shl dword [esp + 0x90], cl
cmp dword [esp + 0x74], 8
ja 0x4b0c93
mov dword [esp + 8], 0
cmp dword [esp + 0x90], 0
jle 0x4b0c75
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 8]
add eax, eax
inc edx
test eax, eax
jg 0x4b0c63
mov dword [esp + 0x90], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x90]
mov dword [esp + 0x324], eax
mov dword [esp + 0x104], 1
jmp 0x4b0e88
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x90]
lea edx, [eax + 1]
mov dword [esp + 0x104], edx
mov dword [esp + edx*4 + 0x2e0], ecx
test ecx, ecx
jne 0x4b0cc7
mov eax, edx
dec eax
cmp dword [esp + eax*4 + 0x2e0], 0
je 0x4b0cb5
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x2e4]
mov dword [esp + 8], 0
test eax, eax
jle 0x4b0e06
mov edx, dword [esp + 8]
add eax, eax
inc edx
test eax, eax
jg 0x4b0ce2
mov dword [esp + 8], edx
mov dword [esp + 0x2e4], eax
cmp dword [esp + 8], 0
je 0x4b0e06
mov dword [esp + 0x324], eax
cmp dword [esp + 0x104], 1
jbe 0x4b0e88
mov eax, dword [esp + 0x104]
lea edx, [eax - 1]
shr edx, 1
je 0x4b46d6
mov ecx, dword [esp + 8]
xor eax, eax
neg ecx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 0xcc], esi
lea esi, [esi]
mov esi, dword [esp + eax*8 + 0x2e8]
mov edx, esi
mov edi, dword [esp + 4]
mov ecx, edi
shr edx, cl
mov ebx, dword [esp + 8]
mov ecx, ebx
or dword [esp + eax*8 + 0x324], edx
mov edx, dword [esp + eax*8 + 0x2ec]
shl esi, cl
mov ecx, edi
mov edi, edx
shr edi, cl
mov ecx, ebx
shl edx, cl
or esi, edi
mov dword [esp + eax*8 + 0x328], esi
mov dword [esp + eax*8 + 0x32c], edx
inc eax
cmp eax, dword [esp]
jb 0x4b0d50
mov ebx, dword [esp + 0xc8]
lea eax, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x104]
lea ecx, [eax - 1]
lea eax, [edx - 1]
cmp ecx, eax
jae 0x4b0e88
mov edx, dword [esp]
mov ecx, dword [esp + 8]
mov dword [esp + 0xc8], ebx
neg ecx
mov eax, dword [esp + edx*4 + 0x2e4]
mov ebx, eax
shr ebx, cl
mov ecx, dword [esp + 8]
or dword [esp + edx*4 + 0x320], ebx
shl eax, cl
mov dword [esp + edx*4 + 0x324], eax
mov ebx, dword [esp + 0xc8]
jmp 0x4b0e88
cmp dword [esp + 0x104], 0
je 0x4b0e88
cmp dword [esp + 0x104], 0x18
jle 0x4b46e2
mov dword [esp + 0xc8], ebx
lea eax, [esp + 0x2e0]
mov ebx, dword [eax - 0x1dc]
lea ecx, [esp + 0x320]
sub ecx, eax
lea edx, [ebx*4]
xor ebx, ebx
xor eax, eax
cmp ecx, edx
setg al
neg ecx
cmp ecx, edx
setg bl
or eax, ebx
mov ebx, dword [esp + 0xc8]
je 0x4b46e2
mov eax, dword [esp + 0x104]
lea ecx, [esp + 0x2e4]
lea edx, [eax*4]
lea eax, [esp + 0x324]
push edx
push ecx
push eax
call fcn.004c6aa0
add esp, 0xc
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x78]
mov eax, dword [esp + 0xc]
lea ecx, [eax + edx*4]
sub ecx, dword [esp + 8]
mov dword [esp + 0x108], ecx
jmp 0x4b379f
test bl, 1
je 0x4b0eb6
mov eax, dword [esp + 0x78]
sub dword [esp + 0xc], eax
jmp 0x4b0ec1
sub eax, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x74]
add eax, ecx
cmp eax, 0xffffec9b
jge 0x4b0ee0
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
jmp 0x4b3c94
cmp eax, 0x1345
jle 0x4b0ef5
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
jmp 0x4b3b2b
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc8], ebx
lea ebx, [eax - 0x36]
test ebx, ebx
mov ebx, ecx
lea ecx, [ebx + eax - 0x36]
jg 0x4b0f0f
mov ecx, ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xa0], ecx
cmp eax, 9
ja 0x4b4106
mov dword [esp + 0x108], 0
cmp dword [esp + 0x90], 0
jle 0x4b0f5e
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x90]
add edx, edx
inc eax
test edx, edx
jg 0x4b0f49
mov dword [esp + 0x108], eax
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x108]
neg edx
mov eax, dword [esp + 0x90]
add edx, 0x20
mov dword [esp + 0x324], eax
mov dword [esp + 0x108], edx
mov dword [esp + 0x104], 1
cmp dword [esp + 0xa0], 0
je 0x4b379f
xor eax, eax
mov dword [esp + 0x360], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x384], eax
mov dword [esp + 0x388], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x39c], eax
cmp dword [esp + 0x104], 4
jb 0x4b10ea
mov eax, dword [esp + 0x334]
shr eax, 0x1f
mov edx, dword [esp + 0x330]
add edx, eax
mov dword [esp + 0x330], edx
cmp edx, eax
jae 0x4b10b9
mov eax, 3
mov dword [esp + 0x320], 0
mov dword [esp + 0x104], eax
cmp dword [esp + 0x32c], 0xffffffff
je 0x4b105e
lea eax, [esp + 0x32c]
mov dword [eax - 0x29c], eax
mov eax, dword [eax]
jmp 0x4b1087
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x320]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b1060
mov dword [esp + 0x104], edx
mov dword [esp + 0x90], ecx
cmp dword [esp + 0x104], 0
je 0x4b1093
mov edx, dword [esp + 0x90]
inc eax
mov dword [edx], eax
jmp 0x4b10ff
inc dword [esp + 0x108]
lea eax, [esp + 0x324]
mov dword [eax], 0x80000000
mov dword [eax - 0x220], 1
mov dword [eax - 0x294], eax
jmp 0x4b10ff
mov eax, 4
mov dword [esp + 0x104], eax
test edx, edx
jne 0x4b47a4
dec eax
lea edx, [esp + eax*4 + 0x320]
cmp dword [edx], 0
je 0x4b10cd
mov dword [esp + 0x104], eax
mov dword [esp + 0x90], edx
jmp 0x4b10ff
mov eax, dword [esp + 0x104]
lea edx, [esp + eax*4 + 0x320]
mov dword [esp + 0x90], edx
xor eax, eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], eax
cmp dword [esp + 0xa0], 0xfffffdea
jge 0x4b1835
mov dword [esp + 0x368], eax
mov dword [esp + 0x364], eax
cmp dword [esp + 0xa0], 0xfffff000
jle 0x4b123e
mov edx, 0x1000
lea ecx, [esp + 0xe0]
mov dword [ecx], eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea esi, [esp + 0x2b0]
mov dword [esi], eax
mov dword [esi - 4], eax
mov dword [esi - 8], eax
mov dword [esi - 0xc], eax
mov eax, 3
mov dword [esp + 0xa4], edi
mov dword [esp + 0x78], edx
mov ecx, dword [ecx]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0xa0]
jmp 0x4b12b6
add dword [esp + 0xa0], 0x1000
mov edx, 0x1000
mov dword [esp + 0xc8], ebx
mov eax, 3
mov dword [esp + 0xa4], edi
mov dword [esp + 0x78], edx
mov dword [esp + 0xcc], esi
mov ebx, dword [esp + 0xa0]
mov edx, eax
shl edx, 4
movsx esi, word [eax*2 + 0x50897e]
mov ecx, dword [edx + 0x50866c]
mov dword [esp + 0x2a4], ecx
lea ecx, [edx + 0x508668]
mov edi, dword [ecx]
mov ecx, dword [ecx - 4]
mov edx, dword [edx + 0x508660]
mov dword [esp + 0x2a8], edi
lea edi, [esp + 0x2ac]
mov dword [edi], ecx
mov ecx, 4
mov dword [edi + 4], edx
mov dword [esp + 0x74], esi
mov edx, dword [esp + 0x78]
jmp 0x4b12c8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x78]
sar edx, 1
dec eax
js 0x4b1804
mov dword [esp + 0x2c], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x78]
neg eax
cmp ebx, eax
jg 0x4b12c0
add ebx, dword [esp + 0x78]
test ecx, ecx
je 0x4b182c
mov eax, dword [esp + 0x2c]
movsx esi, word [eax*2 + 0x50897e]
shl eax, 4
mov dword [esp + 0x60], esi
mov edx, dword [eax + 0x50866c]
mov edi, dword [eax + 0x508668]
mov dword [esp + 0x264], edx
mov dword [esp + 0x268], edi
mov esi, dword [eax + 0x508664]
mov edx, dword [eax + 0x508660]
mov edi, dword [esp + ecx*4 + 0x2a0]
mov dword [esp + 0x26c], esi
lea esi, [ecx + 3]
mov dword [esp + 0x270], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x50]
mul dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x5c]
mov edi, 3
mov edx, dword [esp + 0x58]
mov dword [esp + esi*4 + 0x1a0], eax
mov dword [esp + esi*4 + 0x1a4], edx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*4 + 0x2a0]
mov edx, dword [esp + edi*4 + 0x260]
mov dword [esp + esi*4 + 0x1e0], 0
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe4]
mul dword [esp + 0xe8]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xec]
xor ebx, ebx
mov edx, dword [esp + esi*4 + 0x1a0]
add edx, eax
cmp edx, eax
mov dword [esp + esi*4 + 0x1a0], edx
setb bl
dec esi
add ebx, dword [esp + 0xf0]
mov dword [esp + esi*4 + 0x1a0], ebx
dec edi
jne 0x4b137a
mov eax, esi
mov ebx, dword [esp + 0xa0]
dec eax
mov dword [esp + esi*4 + 0x1e0], 0
js 0x4b1498
mov edx, esi
shr edx, 1
je 0x4b47ca
xor eax, eax
lea edi, [esp + esi*4 + 0x19c]
mov dword [esp + 0xc], edi
lea edi, [esp + esi*4 + 0x1dc]
mov dword [esp + 8], edi
xor edi, edi
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xa0], ebx
mov ecx, eax
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0xc]
inc eax
mov dword [ecx + ebx], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebx - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x4b1448
mov ecx, dword [esp + 0xe0]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0xa0]
lea eax, [edx - 1]
cmp eax, esi
jae 0x4b1498
shl edx, 2
lea edi, [esp + esi*4 + 0x1dc]
neg edx
lea esi, [esp + esi*4 + 0x19c]
xor eax, eax
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edx, ecx
dec edx
je 0x4b1563
mov dword [esp + 0xe0], ecx
mov eax, 4
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x12c], edx
mov ecx, eax
lea ebx, [esp + edx*4 + 0x1e0]
lea esi, [esp + edx*4 + 0x1a0]
mov eax, dword [esp + 0x12c]
mov edi, dword [esp + ecx*4 + 0x260]
mov dword [esp + 0x168], edi
mov edx, dword [esp + eax*4 + 0x2a0]
mov dword [esp + 0x164], edx
mov eax, dword [esp + 0x164]
mul dword [esp + 0x168]
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], edx
mov edi, dword [esp + 0x16c]
mov edx, dword [esi + ecx*4]
add edx, edi
mov dword [esi + ecx*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x170]
mov edi, dword [esi + ecx*4 - 4]
add edi, eax
cmp edi, eax
mov dword [esi + ecx*4 - 4], edi
setb dl
add dword [ebx + ecx*4 - 8], edx
dec ecx
jne 0x4b14cb
mov edx, dword [esp + 0x12c]
mov eax, 4
dec edx
jne 0x4b14b4
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0x74]
lea edx, [ecx + 4]
add esi, dword [esp + 0x60]
lea eax, [esp + ecx*4 + 0x2b0]
mov edi, dword [eax - 0x100]
mov dword [esp + 0x74], esi
lea esi, [ecx + 3]
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], eax
mov dword [eax], edi
cmp edx, 1
je 0x4b1696
mov eax, esi
xor edx, edx
shr eax, 1
mov dword [esp + 0x98], eax
je 0x4b47c0
xor eax, eax
lea edi, [esp + ecx*4 + 0x2ac]
mov dword [esp + 0x94], edi
lea edi, [esp + ecx*4 + 0x1ac]
mov dword [esp + 4], edi
lea edi, [esp + ecx*4 + 0x1ec]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x7c], edi
mov dword [esp], esi
mov ecx, eax
mov ebx, dword [esp + 4]
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x7c]
inc eax
mov edi, dword [esp + 0x94]
mov dword [esp + 0x9c], eax
add edx, dword [ecx + esi]
mov eax, dword [ecx + ebx]
add eax, edx
cmp eax, edx
mov edx, 0
mov dword [ecx + edi], eax
mov eax, edx
setb al
add eax, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, eax
cmp esi, eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + edi - 4], esi
setb dl
add ecx, 0xfffffff8
cmp eax, dword [esp + 0x98]
jb 0x4b15f0
mov ecx, dword [esp + 0xe0]
lea eax, [eax + eax + 1]
mov esi, dword [esp]
mov ebx, dword [esp + 0xa0]
lea edi, [eax - 1]
cmp edi, esi
jae 0x4b1690
shl eax, 2
lea edi, [esp + ecx*4 + 0x1ac]
neg eax
mov dword [esp], esi
lea esi, [esp + ecx*4 + 0x1ec]
lea ecx, [esp + ecx*4 + 0x2ac]
add edx, dword [eax + esi + 4]
add edx, dword [eax + edi + 4]
mov dword [eax + ecx + 4], edx
mov eax, dword [esp + 0x14]
mov esi, dword [esp]
mov edi, dword [eax]
jmp 0x4b1696
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
test edi, edi
jne 0x4b16b8
mov edx, dword [esp + 0x28]
dec edx
lea eax, [esp + edx*4 + 0x2a0]
cmp dword [eax], 0
je 0x4b169e
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], eax
mov eax, edx
lea esi, [eax - 1]
mov eax, dword [esp + 0x2a4]
test eax, eax
jle 0x4b1759
dec dword [esp + 0x74]
add eax, eax
mov dword [esp + 0x2a4], eax
cmp dword [esp + 0x28], 2
jb 0x4b1759
mov eax, dword [esp + 0x28]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b47b6
mov dword [esp + 0xa0], ebx
xor edx, edx
mov eax, dword [esp + edx*8 + 0x2a8]
mov ebx, eax
shr ebx, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x2a4], ebx
mov ebx, dword [esp + edx*8 + 0x2ac]
mov edi, ebx
shr edi, 0x1f
add ebx, ebx
or eax, edi
mov dword [esp + edx*8 + 0x2a8], eax
mov dword [esp + edx*8 + 0x2ac], ebx
inc edx
cmp edx, ecx
jb 0x4b16f3
mov ebx, dword [esp + 0xa0]
lea ecx, [edx + edx + 1]
lea eax, [ecx - 1]
cmp eax, esi
jae 0x4b1759
mov edx, dword [esp + ecx*4 + 0x2a4]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x2a0], eax
mov dword [esp + ecx*4 + 0x2a4], edx
mov eax, dword [esp + 0x14]
mov ecx, esi
cmp dword [eax], 0
je 0x4b1768
mov ecx, dword [esp + 0x28]
cmp ecx, 4
jb 0x4b17f6
mov eax, dword [esp + 0x2b4]
shr eax, 0x1f
mov edx, dword [esp + 0x2b0]
add edx, eax
mov dword [esp + 0x2b0], edx
cmp edx, eax
jae 0x4b17e2
mov dword [esp + 0x2a0], 0
mov ecx, 3
cmp dword [esp + 0x2ac], 0xffffffff
je 0x4b17b4
lea edx, [esp + 0x2ac]
mov eax, dword [edx]
jmp 0x4b17c7
dec ecx
lea edx, [esp + ecx*4 + 0x2a0]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4b17b4
test ecx, ecx
je 0x4b17cc
inc eax
mov dword [edx], eax
jmp 0x4b17f6
inc dword [esp + 0x74]
mov ecx, 1
mov dword [esp + 0x2a4], 0x80000000
jmp 0x4b17f6
mov ecx, 4
test edx, edx
jne 0x4b17f6
dec ecx
cmp dword [esp + ecx*4 + 0x2a0], 0
je 0x4b17eb
sar dword [esp + 0x78], 1
dec dword [esp + 0x2c]
jns 0x4b12d9
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xe0], ecx
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
jmp 0x4b1ecd
mov eax, dword [esp + 0x2c]
jmp 0x4b1273
cmp dword [esp + 0xa0], 0x216
jle 0x4b1eaa
mov dword [esp + 0x368], eax
mov dword [esp + 0x364], eax
cmp dword [esp + 0xa0], 0x1000
jge 0x4b18ae
mov edx, 0x1000
lea ecx, [esp + 0xe0]
mov dword [ecx], eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea esi, [esp + 0x2b0]
mov dword [esi], eax
mov dword [esi - 4], eax
mov dword [esi - 8], eax
mov dword [esi - 0xc], eax
mov eax, 3
mov dword [esp + 0xa4], edi
mov dword [esp + 0x7c], edx
mov ecx, dword [ecx]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0xa0]
jmp 0x4b1926
add dword [esp + 0xa0], 0xfffff000
mov edx, 0x1000
mov dword [esp + 0xc8], ebx
mov eax, 3
mov dword [esp + 0xa4], edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0xcc], esi
mov ebx, dword [esp + 0xa0]
mov edx, eax
shl edx, 4
movsx esi, word [eax*2 + 0x50899a]
mov ecx, dword [edx + 0x5087ec]
mov dword [esp + 0x2a4], ecx
lea ecx, [edx + 0x5087e8]
mov edi, dword [ecx]
mov ecx, dword [ecx - 4]
mov edx, dword [edx + 0x5087e0]
mov dword [esp + 0x2a8], edi
lea edi, [esp + 0x2ac]
mov dword [edi], ecx
mov ecx, 4
mov dword [edi + 4], edx
mov dword [esp + 0x74], esi
mov edx, dword [esp + 0x7c]
jmp 0x4b1938
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
sar edx, 1
dec eax
js 0x4b1804
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp ebx, dword [esp + 0x7c]
jl 0x4b1930
sub ebx, dword [esp + 0x7c]
test ecx, ecx
je 0x4b1ea1
mov eax, dword [esp + 0x78]
movsx esi, word [eax*2 + 0x50899a]
shl eax, 4
mov dword [esp + 0x60], esi
mov edx, dword [eax + 0x5087ec]
mov edi, dword [eax + 0x5087e8]
mov dword [esp + 0x264], edx
mov dword [esp + 0x268], edi
mov esi, dword [eax + 0x5087e4]
mov edx, dword [eax + 0x5087e0]
mov edi, dword [esp + ecx*4 + 0x2a0]
mov dword [esp + 0x26c], esi
lea esi, [ecx + 3]
mov dword [esp + 0x270], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x18]
mul dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov edi, 3
mov edx, dword [esp + 0x20]
mov dword [esp + esi*4 + 0x1a0], eax
mov dword [esp + esi*4 + 0x1a4], edx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*4 + 0x2a0]
mov edx, dword [esp + edi*4 + 0x260]
mov dword [esp + esi*4 + 0x1e0], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov eax, dword [esp + 0xa8]
mul dword [esp + 0xac]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov eax, dword [esp + 0xb0]
xor ebx, ebx
mov edx, dword [esp + esi*4 + 0x1a0]
add edx, eax
cmp edx, eax
mov dword [esp + esi*4 + 0x1a0], edx
setb bl
dec esi
add ebx, dword [esp + 0xb4]
mov dword [esp + esi*4 + 0x1a0], ebx
dec edi
jne 0x4b19e6
mov eax, esi
mov ebx, dword [esp + 0xa0]
dec eax
mov dword [esp + esi*4 + 0x1e0], 0
js 0x4b1b04
mov edx, esi
shr edx, 1
je 0x4b47e8
xor eax, eax
lea edi, [esp + esi*4 + 0x19c]
mov dword [esp + 0x10], edi
lea edi, [esp + esi*4 + 0x1dc]
mov dword [esp + 0xc], edi
xor edi, edi
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0xa0], ebx
mov ecx, eax
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
inc eax
mov dword [ecx + ebx], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebx - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x4b1ab4
mov ecx, dword [esp + 0xe0]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0xa0]
lea eax, [edx - 1]
cmp eax, esi
jae 0x4b1b04
shl edx, 2
lea edi, [esp + esi*4 + 0x1dc]
neg edx
lea esi, [esp + esi*4 + 0x19c]
xor eax, eax
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edx, ecx
dec edx
je 0x4b1bcf
mov dword [esp + 0xe0], ecx
mov eax, 4
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x12c], edx
mov ecx, eax
lea ebx, [esp + edx*4 + 0x1e0]
lea esi, [esp + edx*4 + 0x1a0]
mov eax, dword [esp + 0x12c]
mov edi, dword [esp + ecx*4 + 0x260]
mov dword [esp + 0x120], edi
mov edx, dword [esp + eax*4 + 0x2a0]
mov dword [esp + 0x11c], edx
mov eax, dword [esp + 0x11c]
mul dword [esp + 0x120]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], edx
mov edi, dword [esp + 0x124]
mov edx, dword [esi + ecx*4]
add edx, edi
mov dword [esi + ecx*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x128]
mov edi, dword [esi + ecx*4 - 4]
add edi, eax
cmp edi, eax
mov dword [esi + ecx*4 - 4], edi
setb dl
add dword [ebx + ecx*4 - 8], edx
dec ecx
jne 0x4b1b37
mov edx, dword [esp + 0x12c]
mov eax, 4
dec edx
jne 0x4b1b20
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0x74]
lea esi, [esp + ecx*4 + 0x2b0]
add edx, dword [esp + 0x60]
lea eax, [ecx + 3]
mov dword [esp + 0x74], edx
lea edx, [ecx + 4]
mov edi, dword [esi - 0x100]
mov dword [esi], edi
mov dword [esp + 0x28], eax
cmp edx, 1
je 0x4b1d16
mov dword [esp + 0x2c], 0
shr eax, 1
mov dword [esp + 0x98], eax
je 0x4b47de
xor eax, eax
lea edi, [esp + ecx*4 + 0x1ac]
mov dword [esp + 8], edi
lea edi, [esp + ecx*4 + 0x1ec]
mov dword [esp + 0x94], edi
lea edi, [esp + ecx*4 + 0x2ac]
mov dword [esp + 0xe0], ecx
mov dword [esp], edx
mov dword [esp + 0xa0], ebx
mov dword [esp + 4], esi
mov ecx, eax
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x94]
inc eax
mov dword [esp + 0x9c], eax
add edx, dword [ecx + esi]
mov eax, dword [ecx + ebx]
add eax, edx
cmp eax, edx
mov edx, 0
mov dword [ecx + edi], eax
mov eax, edx
setb al
add eax, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, eax
cmp esi, eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + edi - 4], esi
setb dl
add ecx, 0xfffffff8
cmp eax, dword [esp + 0x98]
jb 0x4b1c60
mov dword [esp + 0x2c], edx
lea edi, [eax + eax + 1]
mov ecx, dword [esp + 0xe0]
mov esi, dword [esp + 4]
mov edx, dword [esp]
mov ebx, dword [esp + 0xa0]
lea eax, [edi - 1]
cmp eax, dword [esp + 0x28]
jae 0x4b1d14
shl edi, 2
neg edi
mov dword [esp], edx
lea edx, [esp + ecx*4 + 0x1ec]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xa0], ebx
lea ebx, [esp + ecx*4 + 0x1ac]
add eax, dword [edi + edx + 4]
lea ecx, [esp + ecx*4 + 0x2ac]
add eax, dword [edi + ebx + 4]
mov dword [edi + ecx + 4], eax
mov edi, dword [esi]
mov edx, dword [esp]
mov ebx, dword [esp + 0xa0]
jmp 0x4b1d16
mov edi, dword [esi]
test edi, edi
jne 0x4b1d2e
dec edx
lea esi, [esp + edx*4 + 0x2a0]
cmp dword [esi], 0
je 0x4b1d1a
lea eax, [edx - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2a4]
test eax, eax
jle 0x4b1dd5
dec dword [esp + 0x74]
add eax, eax
mov dword [esp + 0x2a4], eax
cmp edx, 2
jb 0x4b1dd5
lea edi, [edx - 1]
shr edi, 1
je 0x4b47d4
mov dword [esp], edx
xor ecx, ecx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*8 + 0x2a8]
mov edx, eax
shr edx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x2a4], edx
mov edx, dword [esp + ecx*8 + 0x2ac]
mov ebx, edx
shr ebx, 0x1f
add edx, edx
or eax, ebx
mov dword [esp + ecx*8 + 0x2a8], eax
mov dword [esp + ecx*8 + 0x2ac], edx
inc ecx
cmp ecx, edi
jb 0x4b1d6a
mov edx, dword [esp]
lea eax, [ecx + ecx + 1]
mov ebx, dword [esp + 0xa0]
lea ecx, [eax - 1]
cmp ecx, dword [esp + 0x28]
jae 0x4b1dd5
mov edi, dword [esp + eax*4 + 0x2a4]
mov ecx, edi
shr ecx, 0x1f
add edi, edi
or dword [esp + eax*4 + 0x2a0], ecx
mov dword [esp + eax*4 + 0x2a4], edi
cmp dword [esi], 0
mov ecx, dword [esp + 0x28]
je 0x4b1de0
mov ecx, edx
cmp ecx, 4
jb 0x4b1e6e
mov eax, dword [esp + 0x2b4]
shr eax, 0x1f
mov edx, dword [esp + 0x2b0]
add edx, eax
mov dword [esp + 0x2b0], edx
cmp edx, eax
jae 0x4b1e5a
mov dword [esp + 0x2a0], 0
mov ecx, 3
cmp dword [esp + 0x2ac], 0xffffffff
je 0x4b1e2c
lea edx, [esp + 0x2ac]
mov eax, dword [edx]
jmp 0x4b1e3f
dec ecx
lea edx, [esp + ecx*4 + 0x2a0]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4b1e2c
test ecx, ecx
je 0x4b1e44
inc eax
mov dword [edx], eax
jmp 0x4b1e6e
inc dword [esp + 0x74]
mov ecx, 1
mov dword [esp + 0x2a4], 0x80000000
jmp 0x4b1e6e
mov ecx, 4
test edx, edx
jne 0x4b1e6e
dec ecx
cmp dword [esp + ecx*4 + 0x2a0], 0
je 0x4b1e63
sar dword [esp + 0x7c], 1
dec dword [esp + 0x78]
jns 0x4b1949
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xe0], ecx
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
jmp 0x4b1ecd
mov eax, dword [esp + 0x78]
jmp 0x4b18e3
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xa0]
lea edx, [eax + 0x1b]
cmp edx, 0x1a
ja 0x4b1f46
movsx edx, word [eax*2 + 0x50897e]
shl eax, 4
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x50865c]
mov dword [esp + 0x364], ecx
mov edx, dword [eax + 0x508658]
mov ecx, dword [eax + 0x508654]
mov eax, dword [eax + 0x508650]
mov dword [esp + 0x370], eax
mov dword [esp + 0x368], edx
mov dword [esp + 0x36c], ecx
test eax, eax
mov eax, 4
mov dword [esp + 0x7c], eax
jne 0x4b47f2
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b1f30
mov dword [esp + 0x7c], eax
jmp 0x4b2c99
xor eax, eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x25c], eax
cmp dword [esp + 0xa0], 0
jl 0x4b49bb
cmp dword [esp + 0xa0], 0x37
jl 0x4b205a
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xc8], ebx
mov ebx, edx
sar ebx, 3
mov dword [esp + 0x78], 4
movzx ecx, word [ebx*2 + 0x5088c2]
lea eax, [ebx + 1]
shr ecx, 5
cmp ecx, edx
jle 0x4b1ff5
mov eax, ebx
movzx ecx, word [eax*2 + 0x5088c0]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
sub edx, ecx
mov dword [esp + 0xa0], edx
movsx edx, word [eax*2 + 0x5089a2]
shl eax, 4
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x50882c]
mov edx, dword [eax + 0x508828]
mov ecx, dword [eax + 0x508824]
mov eax, dword [eax + 0x508820]
mov dword [esp + 0x264], ebx
mov dword [esp + 0x268], edx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x270], eax
mov ebx, dword [esp + 0xc8]
jmp 0x4b2062
mov dword [esp + 0x78], 0
cmp dword [esp + 0xa0], 0x37
je 0x4b4959
mov eax, dword [esp + 0xa0]
lea edx, [eax - 0x1b]
test edx, edx
jle 0x4b4944
movsx eax, word [edx*2 + 0x508d1e]
mov dword [esp + 0xc], eax
mov ecx, dword [edx*8 + 0x508b3c]
mov eax, dword [edx*8 + 0x508b38]
mov dword [esp + 0x224], ecx
mov ecx, 2
mov dword [esp + 0x228], eax
mov dword [esp + 0x28], ecx
test eax, eax
jne 0x4b4934
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x220], 0
je 0x4b20bd
mov dword [esp + 0x28], eax
mov dword [esp + 0xa0], 0x1b
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x7c], 2
movsx ecx, word [eax*2 + 0x508d1e]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax*8 + 0x508b3c]
mov eax, dword [eax*8 + 0x508b38]
mov dword [esp + 0x364], ecx
mov dword [esp + 0x368], eax
test eax, eax
jne 0x4b4928
mov eax, dword [esp + 0x7c]
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b211a
mov dword [esp + 0x7c], eax
test edx, edx
jle 0x4b26d9
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x7c]
lea edx, [eax + edx - 1]
mov dword [esp + 0x10], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x220]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mul dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x4c]
mov dword [esp + eax*4 + 0x1a0], edx
mov edx, dword [esp + 0x48]
mov dword [esp + eax*4 + 0x1a4], edx
mov eax, dword [esp + 0x28]
dec eax
je 0x4b2230
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ebx
mov ebx, ecx
mov dword [esp + 0xa4], edi
mov ecx, eax
mov esi, dword [esp + 0x10]
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x220]
mov dword [esp + esi*4 + 0x1e0], 0
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], edi
mov eax, dword [esp + 0xd0]
mul dword [esp + 0xd4]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
mov edi, dword [esp + 0xd8]
mov edx, dword [esp + esi*4 + 0x1a0]
add edx, edi
cmp edx, edi
mov dword [esp + esi*4 + 0x1a0], edx
mov edx, 0
setb dl
dec esi
add edx, dword [esp + 0xdc]
mov dword [esp + esi*4 + 0x1a0], edx
dec ecx
jne 0x4b21a6
mov dword [esp + 0x10], esi
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1e0], 0
dec eax
js 0x4b22fc
mov eax, dword [esp + 0x10]
shr eax, 1
mov dword [esp + 8], eax
je 0x4b491e
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea edx, [esp + ecx*4 + 0x19c]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1dc]
mov dword [esp], edx
mov dword [esp + 0xa4], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x4b2295
mov ebx, dword [esp + 0xc8]
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x10]
jae 0x4b22fc
shl edx, 2
xor eax, eax
mov dword [esp + 0xc8], ebx
neg edx
mov ebx, dword [esp + 0x10]
lea ecx, [esp + ebx*4 + 0x1dc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x19c]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x7c]
dec eax
je 0x4b23d1
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xcc], esi
mov edx, dword [esp + 0x28]
mov esi, edx
test edx, edx
je 0x4b23b5
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x1e0]
lea ecx, [esp + eax*4 + 0x1a0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x220]
mov dword [esp + 0x154], edi
mov edx, dword [esp + eax*4 + 0x360]
mov dword [esp + 0x150], edx
mov eax, dword [esp + 0x150]
mul dword [esp + 0x154]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], edx
mov edi, dword [esp + 0x158]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x15c]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x4b233b
mov eax, dword [esp]
mov edx, dword [esp + 0x28]
dec eax
jne 0x4b2320
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0xc]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x7c]
lea eax, [ecx + edx]
mov dword [esp + 8], eax
lea ecx, [ecx + edx - 1]
mov dword [esp + 0x7c], ecx
lea edx, [esp + eax*4 + 0x360]
mov dword [esp + 4], edx
cmp eax, 1
mov eax, dword [edx - 0x1c0]
mov dword [edx], eax
je 0x4b2530
mov eax, ecx
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x4b4914
mov eax, ecx
xor edx, edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
lea ecx, [esp + eax*4 + 0x1a0]
mov dword [esp], ecx
lea ecx, [esp + eax*4 + 0x1e0]
mov dword [esp + 0x28], ecx
lea eax, [esp + eax*4 + 0x360]
mov dword [esp + 0x10], eax
mov dword [esp + 0xcc], esi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
nop
lea esi, [esi]
mov esi, dword [esp + 0x28]
inc edx
mov edi, dword [esp + 0x10]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x2c]
jb 0x4b2470
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x7c]
jae 0x4b252a
shl edx, 2
mov dword [esp + 0xa4], edi
neg edx
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc8], ebx
lea ecx, [esp + edi*4 + 0x1e0]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + edi*4 + 0x1a0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + edi*4 + 0x360]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x4b2530
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b2556
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x360]
cmp dword [eax], 0
je 0x4b2538
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, edx
lea edx, [eax - 1]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x364]
test eax, eax
jle 0x4b260b
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x364], eax
cmp dword [esp + 8], 2
jb 0x4b260b
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b490a
mov dword [esp + 0xa4], edi
xor edx, edx
mov dword [esp + 0xcc], esi
mov eax, dword [esp + edx*8 + 0x368]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x364], esi
mov esi, dword [esp + edx*8 + 0x36c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x368], eax
mov dword [esp + edx*8 + 0x36c], esi
inc edx
cmp edx, ecx
jb 0x4b259c
mov edi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov esi, dword [esp + 0xcc]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x7c]
jae 0x4b260b
mov ecx, dword [esp + eax*4 + 0x364]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x360], edx
mov dword [esp + eax*4 + 0x364], ecx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x7c]
cmp dword [eax], 0
je 0x4b261c
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x4b26d0
mov eax, dword [esp + 0x374]
shr eax, 0x1f
mov edx, dword [esp + 0x370]
add edx, eax
mov dword [esp + 0x370], edx
cmp edx, eax
jae 0x4b26ac
mov eax, 3
mov dword [esp + 0x360], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x36c], 0xffffffff
je 0x4b2670
lea ecx, [esp + 0x36c]
mov eax, dword [ecx]
jmp 0x4b268c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x360]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b2672
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4b2691
inc eax
mov dword [ecx], eax
jmp 0x4b26d9
inc dword [esp + 0x14]
lea ecx, [esp + 0x364]
mov dword [ecx], 0x80000000
mov dword [esp + 0x7c], 1
jmp 0x4b26d9
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x4b47fe
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b26bd
mov dword [esp + 0x7c], eax
jmp 0x4b26d9
mov eax, edx
lea ecx, [esp + eax*4 + 0x360]
cmp dword [esp + 0x78], 0
je 0x4b2c99
mov dword [esp + 0xc8], ebx
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
lea edx, [ebx + eax]
mov dword [esp + 8], edx
lea edx, [ebx + eax - 1]
mov dword [esp + 0xc], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x260]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x30]
mul dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x1a0], edx
mov edx, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x1a4], edx
mov eax, dword [esp + 0x78]
lea eax, [eax - 1]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ebx
mov ebx, ecx
mov dword [esp + 0xa4], edi
mov ecx, eax
mov esi, dword [esp + 0xc]
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x260]
mov dword [esp + esi*4 + 0x1e0], 0
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], edi
mov eax, dword [esp + 0xb8]
mul dword [esp + 0xbc]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov edi, dword [esp + 0xc0]
mov edx, dword [esp + esi*4 + 0x1a0]
add edx, edi
cmp edx, edi
mov dword [esp + esi*4 + 0x1a0], edx
mov edx, 0
setb dl
dec esi
add edx, dword [esp + 0xc4]
mov dword [esp + esi*4 + 0x1a0], edx
dec ecx
jne 0x4b2768
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x1e0], 0
dec eax
js 0x4b28be
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x4b4900
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea edx, [esp + ecx*4 + 0x19c]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1dc]
mov dword [esp], edx
mov dword [esp + 0xa4], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x10]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x4b2857
mov ebx, dword [esp + 0xc8]
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xc]
jae 0x4b28be
shl edx, 2
xor eax, eax
mov dword [esp + 0xc8], ebx
neg edx
mov ebx, dword [esp + 0xc]
lea ecx, [esp + ebx*4 + 0x1dc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x19c]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x7c]
dec eax
je 0x4b2993
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xcc], esi
mov edx, dword [esp + 0x78]
mov esi, edx
test edx, edx
je 0x4b2977
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x1e0]
lea ecx, [esp + eax*4 + 0x1a0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x260]
mov dword [esp + 0x134], edi
mov edx, dword [esp + eax*4 + 0x360]
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x130]
mul dword [esp + 0x134]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
mov edi, dword [esp + 0x138]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x13c]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x4b28fd
mov eax, dword [esp]
mov edx, dword [esp + 0x78]
dec eax
jne 0x4b28e2
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
lea eax, [edx + ecx - 1]
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + edx*4 + 0x1a0]
lea ecx, [esp + edx*4 + 0x360]
mov dword [esp + 4], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x4b2af0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x4b48f6
mov eax, dword [esp + 0x7c]
xor edx, edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
lea ecx, [esp + eax*4 + 0x1a0]
mov dword [esp], ecx
lea ecx, [esp + eax*4 + 0x1e0]
mov dword [esp + 0x28], ecx
lea eax, [esp + eax*4 + 0x360]
mov dword [esp + 0x10], eax
mov dword [esp + 0xcc], esi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
lea esi, [esi]
mov esi, dword [esp + 0x28]
inc edx
mov edi, dword [esp + 0x10]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x2c]
jb 0x4b2a30
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x7c]
jae 0x4b2aea
shl edx, 2
mov dword [esp + 0xa4], edi
neg edx
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc8], ebx
lea ecx, [esp + edi*4 + 0x1e0]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + edi*4 + 0x1a0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + edi*4 + 0x360]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x4b2af0
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b2b16
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x360]
cmp dword [eax], 0
je 0x4b2af8
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, edx
lea edx, [eax - 1]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x364]
test eax, eax
jle 0x4b2bcb
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x364], eax
cmp dword [esp + 8], 2
jb 0x4b2bcb
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b48ec
mov dword [esp + 0xa4], edi
xor edx, edx
mov dword [esp + 0xcc], esi
mov eax, dword [esp + edx*8 + 0x368]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x364], esi
mov esi, dword [esp + edx*8 + 0x36c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x368], eax
mov dword [esp + edx*8 + 0x36c], esi
inc edx
cmp edx, ecx
jb 0x4b2b5c
mov edi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov esi, dword [esp + 0xcc]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x7c]
jae 0x4b2bcb
mov ecx, dword [esp + eax*4 + 0x364]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x360], edx
mov dword [esp + eax*4 + 0x364], ecx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x7c]
cmp dword [eax], 0
je 0x4b2bdc
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x4b2c90
mov eax, dword [esp + 0x374]
shr eax, 0x1f
mov edx, dword [esp + 0x370]
add edx, eax
mov dword [esp + 0x370], edx
cmp edx, eax
jae 0x4b2c6c
mov eax, 3
mov dword [esp + 0x360], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x36c], 0xffffffff
je 0x4b2c30
lea ecx, [esp + 0x36c]
mov eax, dword [ecx]
jmp 0x4b2c4c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x360]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b2c32
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4b2c51
inc eax
mov dword [ecx], eax
jmp 0x4b2c99
inc dword [esp + 0x14]
lea ecx, [esp + 0x364]
mov dword [ecx], 0x80000000
mov dword [esp + 0x7c], 1
jmp 0x4b2c99
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x4b47f2
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b2c7d
mov dword [esp + 0x7c], eax
jmp 0x4b2c99
mov eax, edx
lea ecx, [esp + eax*4 + 0x360]
cmp dword [esp + 0xe0], 0
je 0x4b3259
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x7c]
lea edx, [eax + edx - 1]
mov dword [esp + 8], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x2a0]
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 + 8]
mov edx, dword [esp + 0x70]
mov dword [esp + eax*4 + 0x1a0], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + eax*4 + 0x1a4], edx
mov eax, dword [esp + 0xe0]
dec eax
je 0x4b2daa
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ebx
mov ebx, ecx
mov dword [esp + 0xa4], edi
mov ecx, eax
mov esi, dword [esp + 8]
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x2a0]
mov dword [esp + esi*4 + 0x1e0], 0
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], edi
mov eax, dword [esp + 0xf4]
mul dword [esp + 0xf8]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], edx
mov edi, dword [esp + 0xfc]
mov edx, dword [esp + esi*4 + 0x1a0]
add edx, edi
cmp edx, edi
mov dword [esp + esi*4 + 0x1a0], edx
mov edx, 0
setb dl
dec esi
add edx, dword [esp + 0x100]
mov dword [esp + esi*4 + 0x1a0], edx
dec ecx
jne 0x4b2d20
mov dword [esp + 8], esi
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x1e0], 0
dec eax
js 0x4b2e76
mov eax, dword [esp + 8]
shr eax, 1
mov dword [esp + 0xc], eax
je 0x4b48e2
mov ecx, dword [esp + 8]
xor eax, eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea edx, [esp + ecx*4 + 0x19c]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1dc]
mov dword [esp], edx
mov dword [esp + 0xa4], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x4b2e0f
mov ebx, dword [esp + 0xc8]
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 8]
jae 0x4b2e76
shl edx, 2
xor eax, eax
mov dword [esp + 0xc8], ebx
neg edx
mov ebx, dword [esp + 8]
lea ecx, [esp + ebx*4 + 0x1dc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x19c]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x7c]
dec eax
je 0x4b2f51
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xcc], esi
mov edx, dword [esp + 0xe0]
mov esi, edx
test edx, edx
je 0x4b2f35
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x1e0]
lea ecx, [esp + eax*4 + 0x1a0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x2a0]
mov dword [esp + 0x178], edi
mov edx, dword [esp + eax*4 + 0x360]
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x174]
mul dword [esp + 0x178]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], edx
mov edi, dword [esp + 0x17c]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x180]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x4b2eb8
mov eax, dword [esp]
mov edx, dword [esp + 0xe0]
dec eax
jne 0x4b2e9d
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x7c]
lea eax, [ecx + edx]
mov dword [esp + 8], eax
lea ecx, [ecx + edx - 1]
mov dword [esp + 0x7c], ecx
lea edx, [esp + eax*4 + 0x360]
mov dword [esp + 4], edx
cmp eax, 1
mov eax, dword [edx - 0x1c0]
mov dword [edx], eax
je 0x4b30b0
mov eax, ecx
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x4b48d8
mov eax, ecx
xor edx, edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
lea ecx, [esp + eax*4 + 0x360]
mov dword [esp + 0x28], ecx
lea ecx, [esp + eax*4 + 0x1a0]
mov dword [esp], ecx
lea eax, [esp + eax*4 + 0x1e0]
mov dword [esp + 0x10], eax
mov dword [esp + 0xcc], esi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
nop
lea esi, [esi]
mov esi, dword [esp + 0x10]
inc edx
mov edi, dword [esp + 0x28]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x2c]
jb 0x4b2ff0
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x7c]
jae 0x4b30aa
shl edx, 2
mov dword [esp + 0xa4], edi
neg edx
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc8], ebx
lea ecx, [esp + edi*4 + 0x1e0]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + edi*4 + 0x1a0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + edi*4 + 0x360]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x4b30b0
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b30d6
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x360]
cmp dword [eax], 0
je 0x4b30b8
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, edx
lea edx, [eax - 1]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x364]
test eax, eax
jle 0x4b318b
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x364], eax
cmp dword [esp + 8], 2
jb 0x4b318b
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b48ce
mov dword [esp + 0xa4], edi
xor edx, edx
mov dword [esp + 0xcc], esi
mov eax, dword [esp + edx*8 + 0x368]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x364], esi
mov esi, dword [esp + edx*8 + 0x36c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x368], eax
mov dword [esp + edx*8 + 0x36c], esi
inc edx
cmp edx, ecx
jb 0x4b311c
mov edi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov esi, dword [esp + 0xcc]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x7c]
jae 0x4b318b
mov ecx, dword [esp + eax*4 + 0x364]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x360], edx
mov dword [esp + eax*4 + 0x364], ecx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x7c]
cmp dword [eax], 0
je 0x4b319c
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x4b3250
mov eax, dword [esp + 0x374]
shr eax, 0x1f
mov edx, dword [esp + 0x370]
add edx, eax
mov dword [esp + 0x370], edx
cmp edx, eax
jae 0x4b322c
mov eax, 3
mov dword [esp + 0x360], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x36c], 0xffffffff
je 0x4b31f0
lea ecx, [esp + 0x36c]
mov eax, dword [ecx]
jmp 0x4b320c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x360]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b31f2
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4b3211
inc eax
mov dword [ecx], eax
jmp 0x4b3259
inc dword [esp + 0x14]
lea ecx, [esp + 0x364]
mov dword [ecx], 0x80000000
mov dword [esp + 0x7c], 1
jmp 0x4b3259
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x4b480a
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b323d
mov dword [esp + 0x7c], eax
jmp 0x4b3259
mov eax, edx
lea ecx, [esp + eax*4 + 0x360]
mov eax, dword [ecx]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x104]
lea edx, [ecx + eax]
mov dword [esp + 8], edx
lea edx, [ecx + eax - 1]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
mul dword [esp + 0x84]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov dword [esp + ecx*4 + 0x1a0], eax
mov dword [esp + ecx*4 + 0x1a4], edx
mov ecx, dword [esp + 0x7c]
dec ecx
je 0x4b337a
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
mov dword [esp + 0xa4], edi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x90]
mov eax, dword [esi]
mov edx, dword [esp + ecx*4 + 0x360]
mov dword [esp + ebx*4 + 0x1e0], 0
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov eax, dword [esp + 0x10c]
mul dword [esp + 0x110]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], edx
mov edi, dword [esp + 0x114]
xor edx, edx
mov eax, dword [esp + ebx*4 + 0x1a0]
add eax, edi
cmp eax, edi
mov dword [esp + ebx*4 + 0x1a0], eax
setb dl
dec ebx
add edx, dword [esp + 0x118]
mov dword [esp + ebx*4 + 0x1a0], edx
dec ecx
jne 0x4b32f3
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x1e0], 0
dec eax
js 0x4b3446
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x4b48c4
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea edx, [esp + ecx*4 + 0x19c]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1dc]
mov dword [esp], edx
mov dword [esp + 0xa4], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x10]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x4b33df
mov ebx, dword [esp + 0xc8]
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xc]
jae 0x4b3446
shl edx, 2
xor eax, eax
mov dword [esp + 0xc8], ebx
neg edx
mov ebx, dword [esp + 0xc]
lea ecx, [esp + ebx*4 + 0x1dc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x19c]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x104]
dec eax
je 0x4b351e
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xcc], esi
mov edx, dword [esp + 0x7c]
mov esi, edx
test edx, edx
je 0x4b3502
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x1e0]
lea ecx, [esp + eax*4 + 0x1a0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x360]
mov dword [esp + 0x194], edi
mov edx, dword [esp + eax*4 + 0x320]
mov dword [esp + 0x190], edx
mov eax, dword [esp + 0x190]
mul dword [esp + 0x194]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], edx
mov edi, dword [esp + 0x198]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x19c]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x4b3488
mov eax, dword [esp]
mov edx, dword [esp + 0x7c]
dec eax
jne 0x4b346d
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x108]
add eax, dword [esp + 0x14]
mov dword [esp + 0x108], eax
lea eax, [edx + ecx - 1]
mov edx, dword [esp + 8]
mov dword [esp + 0x104], eax
mov eax, dword [esp + edx*4 + 0x1a0]
lea ecx, [esp + edx*4 + 0x320]
mov dword [esp + 4], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x4b3696
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x28], eax
je 0x4b48ba
mov eax, dword [esp + 0x104]
xor edx, edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
lea ecx, [esp + eax*4 + 0x320]
mov dword [esp + 0x14], ecx
lea ecx, [esp + eax*4 + 0x1a0]
mov dword [esp], ecx
lea eax, [esp + eax*4 + 0x1e0]
mov dword [esp + 0x10], eax
mov dword [esp + 0xcc], esi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
lea esi, [esi]
mov esi, dword [esp + 0x10]
inc edx
mov edi, dword [esp + 0x14]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x28]
jb 0x4b35d0
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x104]
jae 0x4b3690
shl edx, 2
mov dword [esp + 0xa4], edi
neg edx
mov edi, dword [esp + 0x104]
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc8], ebx
lea ecx, [esp + edi*4 + 0x1e0]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + edi*4 + 0x1a0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + edi*4 + 0x320]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x4b3696
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b36c0
mov ecx, dword [esp + 8]
dec ecx
lea edx, [esp + ecx*4 + 0x320]
mov eax, dword [edx]
test eax, eax
je 0x4b369e
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov edx, ecx
lea ecx, [edx - 1]
mov dword [esp + 0x104], ecx
mov edx, dword [esp + 0x324]
test edx, edx
jle 0x4b3789
dec dword [esp + 0x108]
add edx, edx
mov dword [esp + 0x324], edx
cmp dword [esp + 8], 2
jb 0x4b3783
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b4816
mov dword [esp + 0xa4], edi
xor edx, edx
mov dword [esp + 0xcc], esi
mov eax, dword [esp + edx*8 + 0x328]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x324], esi
mov esi, dword [esp + edx*8 + 0x32c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x328], eax
mov dword [esp + edx*8 + 0x32c], esi
inc edx
cmp edx, ecx
jb 0x4b3709
mov edi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov esi, dword [esp + 0xcc]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x104]
jae 0x4b3783
mov ecx, dword [esp + eax*4 + 0x324]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x320], edx
mov dword [esp + eax*4 + 0x324], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax]
jmp 0x4b3789
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
mov eax, dword [esp + 0x104]
je 0x4b3798
mov eax, dword [esp + 8]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x188]
mov ecx, eax
shr ecx, 0x16
and eax, 0x80000000
and ecx, 7
or eax, ecx
jne 0x4b37bc
mov ecx, 6
mov eax, ecx
and eax, 2
test cl, 4
je 0x4b37da
test eax, eax
mov eax, 0xaaaa
jne 0x4b37d4
mov eax, 0xfa
mov dword [esp + 8], eax
jmp 0x4b37fb
test eax, eax
je 0x4b37e8
mov dword [esp + 8], 0xfa00
jmp 0x4b37fb
mov eax, 0xa8a8
test cl, 1
je 0x4b37f7
mov eax, 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x108]
lea edx, [eax + 0x406e]
mov dword [esp + 0x78], edx
cmp edx, 0x71
jle 0x4b381b
mov dword [esp + 0x78], 0x71
jmp 0x4b3826
cmp dword [esp + 0x78], 0
js 0x4b0ed2
mov eax, dword [esp + 0x78]
mov edx, eax
and eax, 0x1f
mov dword [esp + 0x78], eax
mov eax, 0
setne al
sar edx, 5
mov dword [esp + 0x74], edx
mov dword [esp + 4], eax
add edx, eax
mov dword [esp + 0x60], edx
cmp edx, dword [esp + 0x104]
jbe 0x4b386e
add ecx, 0xfffffffe
test ecx, 0xfffffffd
je 0x4b386e
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
jmp 0x4b3b1a
mov eax, dword [esp + 0x104]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + edx*4 + 0x320]
mov dword [esp + 0x104], edx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x78], 0
je 0x4b398f
mov edx, dword [esp + 0x78]
neg edx
mov eax, ecx
mov dword [esp + 0xc8], ebx
mov ebx, eax
lea ecx, [edx + 0x1f]
add edx, 0x20
shr ebx, cl
and ebx, 1
mov dword [esp], ecx
mov ecx, edx
mov dword [esp + 0xc], ebx
mov ebx, 1
shl ebx, cl
mov edx, 1
mov dword [esp + 0x2c], ebx
mov ebx, eax
shr ebx, cl
mov ecx, dword [esp]
and ebx, 1
shl edx, cl
dec edx
and edx, eax
mov eax, dword [esp + 0x28]
or dword [esp + 0x160], edx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc8]
cmp eax, dword [esp + 0x60]
jbe 0x4b3a6a
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x74]
lea edx, [edx + eax + 1]
cmp edx, dword [esp + 0x28]
ja 0x4b3a6a
mov eax, dword [esp + 0x28]
sub eax, edx
inc eax
mov dword [esp + 0x28], eax
shr eax, 1
mov dword [esp + 4], eax
je 0x4b4820
mov dword [esp], edx
lea ecx, [esp + edx*4 + 0x320]
xor eax, eax
mov dword [esp + 0xcc], esi
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 4]
or edx, dword [ecx + eax*8]
or edx, dword [ecx + eax*8 + 4]
inc eax
cmp eax, esi
jb 0x4b3945
mov dword [esp + 0x160], edx
lea ecx, [eax + eax + 1]
mov edx, dword [esp]
mov esi, dword [esp + 0xcc]
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x28]
jae 0x4b3a6a
add edx, ecx
mov eax, dword [esp + 0x160]
or eax, dword [esp + edx*4 + 0x31c]
mov dword [esp + 0x160], eax
jmp 0x4b3a6a
mov edx, ecx
mov ecx, dword [esp + 0x60]
and edx, 1
mov dword [esp + 0x10], edx
mov edx, dword [esp + ecx*4 + 0x324]
mov eax, edx
shr eax, 0x1f
add edx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x74]
or dword [esp + 0x160], edx
lea eax, [ecx + eax + 1]
cmp eax, dword [esp + 0x28]
jae 0x4b3a62
mov edx, dword [esp + 4]
mov eax, ecx
lea edx, [eax + edx + 2]
add eax, 2
cmp eax, dword [esp + 0x28]
ja 0x4b3a62
mov eax, dword [esp + 0x28]
sub eax, edx
inc eax
mov dword [esp + 0x28], eax
shr eax, 1
mov dword [esp + 4], eax
je 0x4b482a
mov dword [esp], edx
lea ecx, [esp + edx*4 + 0x320]
xor eax, eax
mov dword [esp + 0xcc], esi
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 4]
or edx, dword [ecx + eax*8]
or edx, dword [ecx + eax*8 + 4]
inc eax
cmp eax, esi
jb 0x4b3a17
mov dword [esp + 0x160], edx
lea ecx, [eax + eax + 1]
mov edx, dword [esp]
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x2c], 1
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x28]
jae 0x4b3a6a
add edx, ecx
mov eax, dword [esp + 0x160]
or eax, dword [esp + edx*4 + 0x31c]
mov dword [esp + 0x160], eax
jmp 0x4b3a6a
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0xc]
xor eax, eax
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x160], 0
setne al
lea edx, [ecx + edx*2]
mov ecx, ebx
and ecx, 8
mov dword [esp + 0x28], ecx
lea ecx, [ecx + eax*4]
add ecx, edx
mov edx, dword [esp + 8]
shr edx, cl
test dl, 1
je 0x4b3b1a
cmp dword [esp + 0x60], 0
je 0x4b3af3
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x14], eax
cmp eax, edx
jae 0x4b4863
mov edx, dword [esp + 0x60]
mov dword [esp + edx*4 + 0x320], eax
mov dword [esp + 0x320], 0
mov edx, dword [esp + 0x104]
dec edx
mov eax, dword [esp + edx*4 + 0x320]
cmp eax, 0xffffffff
je 0x4b3ad5
mov dword [esp + 0x104], edx
cmp dword [esp + 0x104], 0
jne 0x4b3b12
inc dword [esp + 0x108]
mov dword [esp + 0x324], 0x80000000
mov dword [esp + 0x104], 1
jmp 0x4b3b1a
inc eax
mov dword [esp + edx*4 + 0x320], eax
cmp dword [esp + 0x108], 0x4000
jle 0x4b3c65
mov eax, dword [esp + 0x188]
and eax, 0x1c00000
cmp eax, 0x400000
je 0x4b3c26
cmp eax, 0x1000000
jne 0x4b3b87
cmp dword [esp + 0x28], 0
je 0x4b3bcc
mov eax, dword [0x509110]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x509114]
mov ecx, dword [0x509118]
mov eax, dword [0x50911c]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b4072
cmp eax, 0x800000
jne 0x4b3bcc
cmp dword [esp + 0x28], 0
jne 0x4b3bcc
mov eax, dword [0x509100]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x509104]
mov ecx, dword [0x509108]
mov eax, dword [0x50910c]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b4072
cmp dword [esp + 0x28], 0
je 0x4b3bda
mov eax, 0x509090
jmp 0x4b3bdf
mov eax, 0x509080
mov edx, dword [eax]
mov dword [esp + 0x3a0], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x3a8], edx
mov edx, ebx
or edx, 0x8000000
test dword [esp + 0x188], 0x2000
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3ac], eax
je 0x4b4072
mov ebx, edx
jmp 0x4b4072
cmp dword [esp + 0x28], 0
je 0x4b3c34
mov eax, 0x509110
jmp 0x4b3c39
mov eax, 0x509100
mov edx, dword [eax]
mov dword [esp + 0x3a0], edx
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3a8], edx
mov dword [esp + 0x3ac], eax
jmp 0x4b4072
cmp dword [esp + 0x108], 0xffffc002
jg 0x4b3d84
cmp dword [esp + 0x108], 0xffffbf93
jl 0x4b3c94
test dword [esp + 0x188], 0x10000000
je 0x4b3d84
mov eax, dword [esp + 0x188]
and eax, 0x1c00000
cmp eax, 0x1000000
jne 0x4b3ce5
cmp dword [esp + 0x28], 0
jne 0x4b3d2a
mov eax, dword [0x5090a0]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x5090a4]
mov ecx, dword [0x5090a8]
mov eax, dword [0x5090ac]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b4072
cmp eax, 0x800000
jne 0x4b3d2a
cmp dword [esp + 0x28], 0
je 0x4b3d2a
mov eax, dword [0x5090b0]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x5090b4]
mov ecx, dword [0x5090b8]
mov eax, dword [0x5090bc]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b4072
cmp dword [esp + 0x28], 0
je 0x4b3d38
mov eax, 0x509050
jmp 0x4b3d3d
mov eax, 0x509040
mov edx, dword [eax]
mov dword [esp + 0x3a0], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x3a8], edx
mov edx, ebx
or edx, 0x9000000
test dword [esp + 0x188], 0x4000
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3ac], eax
je 0x4b4072
mov ebx, edx
jmp 0x4b4072
mov eax, dword [esp + 0x324]
mov dword [esp + 8], eax
cmp dword [esp + 0x104], 2
jae 0x4b3da3
mov dword [esp + 0x10], 0
jmp 0x4b3dae
mov eax, dword [esp + 0x328]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x104], 3
jae 0x4b3dc2
mov dword [esp + 0xc], 0
jmp 0x4b3dcd
mov eax, dword [esp + 0x32c]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x104], 4
jae 0x4b3de1
mov dword [esp + 0x14], 0
jmp 0x4b3dec
mov eax, dword [esp + 0x330]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x108], 0xffffc002
jle 0x4b3e65
mov edx, dword [esp + 0xc]
mov dword [esp + 0xc8], ebx
mov ebx, edx
mov eax, dword [esp + 0x14]
shr eax, 0xf
shl ebx, 0x11
or eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov ebx, eax
shr edx, 0xf
shl ebx, 0x11
mov ecx, dword [esp + 0x108]
or edx, ebx
mov ebx, dword [esp + 8]
shl ecx, 0x10
mov dword [esp + 0xc], edx
mov edx, ebx
shr ebx, 0xf
add ecx, 0x3ffe0000
and ebx, 0xfffeffff
shr eax, 0xf
or ebx, ecx
shl edx, 0x11
mov dword [esp + 8], ebx
or eax, edx
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0xc8]
jmp 0x4b4035
mov eax, dword [esp + 0x108]
neg eax
mov dword [esp + 0x108], eax
lea edx, [eax - 0x3fee]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b3fbc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 8]
lea edx, [eax - 0x400e]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0
cmp edx, 0x20
jl 0x4b3fbc
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
lea eax, [ecx - 0x402e]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
cmp eax, 0x20
jl 0x4b4856
mov eax, edx
mov edx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
lea ecx, [edx - 0x404e]
mov dword [esp + 4], ecx
cmp ecx, 0x20
jl 0x4b4847
mov eax, edx
mov dword [esp + 0x14], 0
lea edx, [eax - 0x406e]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b4834
mov dword [esp + 0x14], 0
lea edx, [eax - 0x408e]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b4834
mov dword [esp + 0x14], 0
lea edx, [eax - 0x40ae]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b4834
mov dword [esp + 0x14], 0
lea edx, [eax - 0x40ce]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b4834
lea edx, [eax - 0x40ee]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b3faa
lea edx, [eax - 0x410e]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b3faa
mov eax, edx
add eax, 0xffffffe0
cmp eax, 0x20
jge 0x4b3f9e
mov dword [esp + 4], eax
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
cmp dword [esp + 4], 0
je 0x4b4035
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 4]
mov ecx, ebx
mov dword [esp + 0xa4], edi
mov edi, ebx
neg edi
mov dword [esp], edi
mov edx, dword [esp + 0xc]
mov eax, edx
mov edi, dword [esp + 0x14]
shr edi, cl
mov ecx, dword [esp]
shl eax, cl
mov ecx, ebx
or edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov edi, eax
shr edx, cl
mov ecx, dword [esp]
shl edi, cl
mov ecx, ebx
or edx, edi
mov edi, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edx, edi
shr eax, cl
mov ecx, dword [esp]
shl edx, cl
mov ecx, ebx
shr edi, cl
or eax, edx
mov dword [esp + 8], edi
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x3a0], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3a4], edx
mov edx, eax
or edx, 0x80000000
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x10]
jne 0x4b4064
mov edx, eax
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], edx
cmp dword [esp + 0x184], 0
je 0x4b409d
test dword [esp + 0x188], 0x40000
je 0x4b4094
mov eax, dword [esp + 0x184]
mov dword [eax], esi
jmp 0x4b409d
mov eax, dword [esp + 0x184]
mov dword [eax], edi
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x4b40a9
shr ebx, 0x18
mov dword [eax], ebx
mov esi, dword [esp + 0x18c]
mov eax, dword [esp + 0x3a0]
mov edx, dword [esp + 0x3a4]
mov ecx, dword [esp + 0x3a8]
mov ebx, dword [esp + 0x3ac]
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3b0], 0
xor ecx, esp
cmp ecx, dword [0x52ec00]
jne 0x4b4680
mov eax, esi
add esp, 0x3b4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
mov dword [esp + ecx*4 + 0x2e4], eax
lea eax, [ecx + 1]
mov dword [esp + 0x104], eax
cmp eax, 2
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x1a4], eax
mov eax, dword [0x509144]
jb 0x4b4a80
mov ecx, 2
je 0x4b4167
mov dword [esp + 0xa4], edi
mov dword [esp + 0xc8], ebx
mov ebx, eax
mov dword [esp + 0xcc], esi
xor eax, eax
mov edi, dword [esp + 0x104]
jmp 0x4b418c
mov dword [esp + 0xa4], edi
xor eax, eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
mov edi, dword [esp + 0x104]
mov ebx, dword [edx*4 + 0x509120]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x1a4]
cmp ecx, 1
jle 0x4b4da3
mov dword [esp + 0x1a4], 0
mov esi, 1
mov dword [esp + 0x104], edi
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], ebx
mov eax, dword [esp + 0x140]
mul dword [esp + 0x144]
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], edx
mov edi, dword [esp + 0x148]
mov eax, dword [esp + esi*4 + 0x1a0]
add eax, edi
cmp eax, edi
mov dword [esp + esi*4 + 0x1a0], eax
mov eax, 0
setb al
add eax, dword [esp + 0x14c]
mov edx, dword [esp + esi*4 + 0x1a4]
mov dword [esp + esi*4 + 0x1a4], eax
inc esi
cmp esi, ecx
jl 0x4b41ba
mov edi, dword [esp + 0x104]
xor eax, eax
mov esi, dword [esp + 0x1a4]
mov edx, dword [esp + ecx*4 + 0x2e0]
add esi, edx
mov dword [esp + 0x1a4], esi
cmp esi, edx
jae 0x4b4289
mov dword [esp + ecx*4 + 0x1a4], 0
mov edx, 2
cmp dword [esp + 0x1a8], 0xffffffff
je 0x4b4268
lea edx, [esp + 0x1a8]
mov esi, dword [edx]
jmp 0x4b4286
mov dword [esp + edx*4 + 0x1a0], 0
inc edx
lea eax, [esp + edx*4 + 0x1a0]
mov esi, dword [eax]
cmp esi, 0xffffffff
je 0x4b4268
mov edx, eax
xor eax, eax
inc esi
mov dword [edx], esi
inc ecx
cmp ecx, edi
ja 0x4b4a64
jne 0x4b4193
lea esi, [esi]
mov edx, dword [esp + 0x94]
jmp 0x4b4185
xor edx, edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x160], edx
jmp 0x4b0b00
call fcn.004cba1b
mov dword [esp + 0xa4], esi
mov edx, dword [esp]
jmp 0x4b0a0d
mov edx, dword [esp + 0x94]
jmp 0x4b0b00
mov dword [esp], 1
jmp 0x4b0db3
mov eax, dword [esp + 0x104]
shr eax, 1
mov dword [esp + 4], eax
je 0x4b479b
mov ecx, dword [esp + 0x104]
xor edx, edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea eax, [esp + ecx*4 + 0x320]
mov dword [esp], eax
lea eax, [esp + ecx*4 + 0x2e0]
mov dword [esp + 0xa4], edi
mov ebx, edx
mov esi, dword [esp]
mov ecx, dword [esp + 4]
mov edi, dword [ebx + eax]
inc edx
mov dword [ebx + esi], edi
mov edi, dword [ebx + eax - 4]
mov dword [ebx + esi - 4], edi
add ebx, 0xfffffff8
cmp edx, ecx
jb 0x4b472d
mov ebx, dword [esp + 0xc8]
lea eax, [edx + edx + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x104]
jae 0x4b0e88
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + 0x104]
neg ecx
lea eax, [esp + edx*4 + 0x2e0]
mov eax, dword [ecx + eax + 4]
lea edx, [esp + edx*4 + 0x320]
mov dword [ecx + edx + 4], eax
jmp 0x4b0e88
mov dword [esp], 1
jmp 0x4b475f
lea eax, [esp + 0x330]
mov dword [eax - 0x2a0], eax
jmp 0x4b10ff
mov ecx, 1
jmp 0x4b1736
mov eax, 1
jmp 0x4b1655
mov edx, 1
jmp 0x4b1474
mov eax, 1
jmp 0x4b1db0
mov edi, 1
jmp 0x4b1cc9
mov edx, 1
jmp 0x4b1ae0
lea ecx, [esp + 0x370]
jmp 0x4b2c99
lea ecx, [esp + 0x370]
jmp 0x4b26d9
lea ecx, [esp + 0x370]
jmp 0x4b3259
mov eax, 1
jmp 0x4b3753
mov ecx, 1
jmp 0x4b3966
mov ecx, 1
jmp 0x4b3a38
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
jmp 0x4b3fbc
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
jmp 0x4b3fbc
mov dword [esp + 8], 0
jmp 0x4b3fbc
cmp dword [esp + 0x78], 0
je 0x4b4886
mov ecx, dword [esp + 0x60]
mov eax, edx
dec eax
not eax
mov edx, dword [esp + 0x14]
and edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + ecx*4 + 0x320], edx
jmp 0x4b4891
mov edx, dword [esp + 0x60]
mov dword [esp + edx*4 + 0x320], eax
cmp dword [esp + 0x14], 0
jne 0x4b3b1a
mov eax, dword [esp + 0x104]
dec eax
cmp dword [esp + eax*4 + 0x320], 0
je 0x4b48a3
mov dword [esp + 0x104], eax
jmp 0x4b3b1a
mov edx, 1
jmp 0x4b362f
mov edx, 1
jmp 0x4b340e
mov eax, 1
jmp 0x4b3166
mov edx, 1
jmp 0x4b304f
mov edx, 1
jmp 0x4b2e3e
mov eax, 1
jmp 0x4b2ba6
mov edx, 1
jmp 0x4b2a8f
mov edx, 1
jmp 0x4b2886
mov eax, 1
jmp 0x4b25e6
mov edx, 1
jmp 0x4b24cf
mov edx, 1
jmp 0x4b22c4
lea ecx, [esp + 0x368]
jmp 0x4b212b
mov dword [esp + 0xa0], 0x1b
jmp 0x4b20d7
xor eax, eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x224], eax
jmp 0x4b20d7
movsx edx, word [0x5089a2]
xor eax, eax
mov ecx, dword [0x50882c]
mov dword [esp + 0x228], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x364], ecx
mov eax, dword [0x508828]
mov edx, dword [0x508824]
mov ecx, dword [0x508820]
mov dword [esp + 0x368], eax
mov dword [esp + 0x36c], edx
mov dword [esp + 0x370], ecx
lea ecx, [esp + 0x370]
mov dword [esp + 0x7c], 4
jmp 0x4b26d9
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xc8], ebx
mov ebx, edx
neg ebx
mov dword [esp + 0xa4], edi
mov edi, ebx
sar edi, 3
mov dword [esp + 0x78], 4
movzx ecx, word [edi*2 + 0x508740]
lea eax, [edi + 1]
shr ecx, 5
cmp ecx, ebx
jl 0x4b49f5
mov eax, edi
movzx ecx, word [eax*2 + 0x508740]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
add edx, ecx
mov dword [esp + 0xa0], edx
movsx edx, word [eax*2 + 0x508986]
shl eax, 4
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x5086ac]
mov edi, dword [eax + 0x5086a8]
mov edx, dword [eax + 0x5086a4]
mov eax, dword [eax + 0x5086a0]
mov dword [esp + 0x264], ebx
mov dword [esp + 0x268], edi
mov dword [esp + 0x26c], edx
mov dword [esp + 0x270], eax
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
jmp 0x4b2062
mov dword [esp + 0x104], edi
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0x104]
cmp dword [esp + eax*4 + 0x1a0], 0
jne 0x4b4d86
mov dword [esp + 0xcc], esi
mov esi, eax
dec esi
lea eax, [esp + esi*4 + 0x1a0]
mov ecx, dword [eax]
lea edx, [esi*4]
test ecx, ecx
je 0x4b4a9e
mov dword [esp + 0x104], esi
mov dword [esp + 4], ecx
mov esi, dword [esp + 0xcc]
mov dword [esp + 0xc], 0
cmp dword [esp + 4], 0
jle 0x4b4af7
mov dword [esp + 0xcc], esi
mov esi, dword [esp + 0xc]
add ecx, ecx
inc esi
test ecx, ecx
jg 0x4b4adf
mov dword [esp + 4], ecx
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0xcc]
mov dword [eax], ecx
mov eax, dword [esp + 0x104]
shl eax, 5
mov ecx, dword [esp + 0xc]
sub eax, ecx
mov dword [esp + 0x108], eax
test ecx, ecx
je 0x4b4c5f
mov eax, dword [esp + 4]
mov dword [esp + 0x324], eax
mov eax, dword [esp + 0x104]
lea ecx, [eax - 1]
mov dword [esp], ecx
cmp eax, 1
je 0x4b4d3a
lea eax, [esp + edx + 0x320]
mov edx, ecx
mov dword [esp + 8], eax
shr edx, 1
mov dword [esp + 0x2c], edx
je 0x4b4d70
mov ecx, dword [esp + 0x104]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xa4], edi
lea edx, [esp + ecx*4 + 0x19c]
mov dword [esp + 0x28], edx
lea ecx, [ecx*4 - 4]
neg ecx
mov edx, dword [esp + 0xc]
add ecx, dword [esp + 8]
neg edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], edx
mov dword [esp + 0xcc], esi
nop
lea esi, [esi]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x10]
mov ebx, dword [edi + ebx]
mov edx, ebx
shr edx, cl
mov ecx, dword [esp + 0x28]
or dword [esi + eax*8], edx
mov edx, dword [edi + ecx - 4]
add edi, 0xfffffff8
mov dword [esp + 0x14], edi
mov edi, edx
mov ecx, dword [esp + 0xc]
shl ebx, cl
mov ecx, dword [esp + 4]
shr edi, cl
mov ecx, dword [esp + 0xc]
or ebx, edi
shl edx, cl
mov dword [esi + eax*8 + 4], ebx
mov dword [esi + eax*8 + 8], edx
inc eax
cmp eax, dword [esp + 0x2c]
jb 0x4b4ba0
mov ebx, dword [esp + 0xc8]
lea eax, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
lea edx, [eax - 1]
cmp edx, dword [esp]
jae 0x4b4d45
mov edx, eax
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp]
sub edx, ebx
sub ebx, eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa4], edi
neg ecx
mov eax, dword [esp + ebx*4 + 0x1a4]
mov edi, eax
mov ebx, dword [esp + 8]
shr edi, cl
mov ecx, dword [esp + 0xc]
shl eax, cl
or dword [ebx + edx*4 - 4], edi
mov dword [ebx + edx*4], eax
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xa4]
jmp 0x4b4d45
cmp dword [esp + 0x104], 0
je 0x4b4d3a
mov eax, dword [esp + 0x104]
lea ecx, [esp + edx + 0x320]
mov dword [esp + 8], ecx
shr eax, 1
mov dword [esp + 4], eax
je 0x4b4d7a
mov ecx, dword [esp + 0x104]
xor eax, eax
neg edx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
lea ecx, [esp + ecx*4 + 0x1a0]
mov dword [esp], ecx
add edx, dword [esp + 8]
mov ecx, eax
mov ebx, dword [esp]
mov esi, dword [esp + 4]
mov dword [esp + 0xa4], edi
mov edi, dword [ecx + ebx]
mov dword [edx + eax*8 + 4], edi
mov edi, dword [ecx + ebx - 4]
add ecx, 0xfffffff8
mov dword [edx + eax*8 + 8], edi
inc eax
cmp eax, esi
jb 0x4b4cc2
mov ebx, dword [esp + 0xc8]
lea eax, [eax + eax + 1]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x104]
jae 0x4b4d45
mov edx, eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc8], ebx
lea ecx, [edx*4]
sub edx, eax
neg ecx
lea ebx, [esp + eax*4 + 0x1a0]
mov eax, dword [esp + 8]
mov ecx, dword [ecx + ebx + 4]
mov dword [eax + edx*4], ecx
mov ebx, dword [esp + 0xc8]
jmp 0x4b4d45
lea eax, [esp + edx + 0x320]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp dword [eax], 0
jne 0x4b0f8a
mov eax, dword [esp + 0x104]
dec eax
cmp dword [esp + eax*4 + 0x320], 0
je 0x4b4d59
mov dword [esp + 0x104], eax
jmp 0x4b0f8a
mov eax, 1
jmp 0x4b4c07
mov dword [esp], 1
jmp 0x4b4cf5
mov eax, dword [esp + 0x7c]
lea edx, [eax*4 + 4]
lea eax, [esp + edx + 0x1a0]
mov ecx, dword [eax]
mov dword [esp + 4], ecx
jmp 0x4b4ac5
mov esi, eax
jmp 0x4b422f
mov dword [esp + 0xa4], edx
xor edx, edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x160], edx
jmp 0x4b0b00
mov edx, dword [esp + 0xa4]
jmp 0x4b06a7
xor esi, esi
mov ebx, 0x6000000
jmp 0x4b4072