Function at 0x4ae860
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 [0x543b10]
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 0x4ae9e2
test dword [esp + 0x188], 0x10000
je 0x4ae9db
lea eax, [ebp + 0x2b]
and eax, 0xfffffffc
movsx esi, byte [eax]
jmp 0x4ae9e7
mov esi, 0x2c
jmp 0x4ae9e7
mov esi, 0x2e
cmp dword [esp + 0xa4], 0
jle 0x4b3185
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 0x4aea53
lea edx, [eax - 9]
cmp edx, 4
ja 0x4b3179
mov edx, dword [esp + 0xa4]
lea eax, [edi + 1]
mov edi, eax
dec edx
je 0x4b314a
movsx eax, byte [eax]
lea ecx, [eax - 9]
cmp ecx, 4
jbe 0x4aea30
cmp eax, 0x20
je 0x4aea30
mov dword [esp + 0xa4], edx
mov dword [esp + 0x98], edi
cmp eax, 0x2d
jne 0x4aea64
add ebx, 8
jmp 0x4aea69
cmp eax, 0x2b
jne 0x4aea7a
add ebx, 2
inc edi
dec dword [esp + 0xa4]
je 0x4b264b
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 0x4aed7b
movzx eax, word [eax*2 + 0x50a984]
add eax, 0x4aeadc
jmp eax
cmp edx, 9
jne 0x4aed90
test byte [esp + 0x188], 1
jne 0x4aee8b
jmp 0x4aedad
cmp edx, 0x20
jne 0x4aedad
test byte [esp + 0x188], 2
jne 0x4aee8b
test byte [esp + 0x188], 0x40
jne 0x4aedd0
cmp edx, dword [esp + 0x60]
jne 0x4b2a6a
test bl, 1
jne 0x4b2a6a
mov dword [esp + 0x78], 0
or ebx, 1
jmp 0x4aee8b
mov edx, 0x30
cmp dword [esp + 0x74], 0
je 0x4aee78
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 0x4aee3c
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 0x4aee8b
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x28]
jae 0x4aee6f
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 0x4aee8b
or dword [esp + 0x160], edx
jmp 0x4aee8b
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 0x4aeabe
mov edx, dword [esp + 0x94]
mov dword [esp + 0x60], 0
mov esi, edi
test bl, 4
mov eax, ebx
jne 0x4aeeb8
mov esi, dword [esp + 0x98]
and eax, 0x40
je 0x4aeebf
mov esi, edi
test dword [esp + 0x188], 0x8000
je 0x4aeeff
test dword [esp + 0x188], 0x80000000
je 0x4aeeea
cmp dword [esp + 0xa4], 0
je 0x4aeeff
cmp byte [edi], 0
jne 0x4aeef4
jmp 0x4aeeff
cmp dword [esp + 0xa4], 0
je 0x4aeeff
or ebx, 0x3000000
jmp 0x4b2412
mov ecx, ebx
and ecx, 0x200
mov dword [esp], ecx
je 0x4aef16
mov ecx, ebx
and ecx, 0x54
cmp ecx, 0x54
jne 0x4aeef4
cmp dword [esp + 0x74], 0
jne 0x4aef58
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x4aef32
xor dword [esp + 0x3ac], 0x80000000
mov eax, dword [esp + 0x188]
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x4b2412
mov ebx, edx
jmp 0x4b2412
test bl, 0x20
je 0x4aef61
test eax, eax
je 0x4aeef4
test bl, 0x10
je 0x4aefba
cmp dword [esp + 0x2c], 6
jbe 0x4aef87
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
test ebx, 0x80
jne 0x4b2034
jmp 0x4b1ecb
mov ecx, dword [esp + 0x60]
mov eax, ecx
neg eax
test ebx, 0x80
jne 0x4aef99
mov eax, ecx
test dword [esp + 0x188], 0x400
mov ecx, dword [esp + 0xa0]
jne 0x4aefb2
mov ecx, 0
sub eax, ecx
mov dword [esp + 0xc], eax
jmp 0x4aefc7
mov eax, dword [esp + 0xa0]
neg eax
mov dword [esp + 0xc], eax
cmp dword [esp], 0
je 0x4af247
shl edx, 2
neg edx
mov ecx, edx
shl dword [esp + 0x90], cl
cmp dword [esp + 0x74], 8
ja 0x4af033
mov dword [esp + 8], 0
cmp dword [esp + 0x90], 0
jle 0x4af015
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 8]
add eax, eax
inc edx
test eax, eax
jg 0x4af003
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 0x4af228
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 0x4af067
mov eax, edx
dec eax
cmp dword [esp + eax*4 + 0x2e0], 0
je 0x4af055
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x2e4]
mov dword [esp + 8], 0
test eax, eax
jle 0x4af1a6
mov edx, dword [esp + 8]
add eax, eax
inc edx
test eax, eax
jg 0x4af082
mov dword [esp + 8], edx
mov dword [esp + 0x2e4], eax
cmp dword [esp + 8], 0
je 0x4af1a6
mov dword [esp + 0x324], eax
cmp dword [esp + 0x104], 1
jbe 0x4af228
mov eax, dword [esp + 0x104]
lea edx, [eax - 1]
shr edx, 1
je 0x4b2a76
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 0x4af0f0
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 0x4af228
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 0x4af228
cmp dword [esp + 0x104], 0
je 0x4af228
cmp dword [esp + 0x104], 0x18
jle 0x4b2a82
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 0x4b2a82
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.004ca960
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 0x4b1b3f
test bl, 1
je 0x4af256
mov eax, dword [esp + 0x78]
sub dword [esp + 0xc], eax
jmp 0x4af261
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 0x4af280
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
jmp 0x4b2034
cmp eax, 0x1345
jle 0x4af295
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
jmp 0x4b1ecb
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 0x4af2af
mov ecx, ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xa0], ecx
cmp eax, 9
ja 0x4b24a6
mov dword [esp + 0x108], 0
cmp dword [esp + 0x90], 0
jle 0x4af2fe
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x90]
add edx, edx
inc eax
test edx, edx
jg 0x4af2e9
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 0x4b1b3f
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 0x4af48a
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 0x4af459
mov eax, 3
mov dword [esp + 0x320], 0
mov dword [esp + 0x104], eax
cmp dword [esp + 0x32c], 0xffffffff
je 0x4af3fe
lea eax, [esp + 0x32c]
mov dword [eax - 0x29c], eax
mov eax, dword [eax]
jmp 0x4af427
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x320]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4af400
mov dword [esp + 0x104], edx
mov dword [esp + 0x90], ecx
cmp dword [esp + 0x104], 0
je 0x4af433
mov edx, dword [esp + 0x90]
inc eax
mov dword [edx], eax
jmp 0x4af49f
inc dword [esp + 0x108]
lea eax, [esp + 0x324]
mov dword [eax], 0x80000000
mov dword [eax - 0x220], 1
mov dword [eax - 0x294], eax
jmp 0x4af49f
mov eax, 4
mov dword [esp + 0x104], eax
test edx, edx
jne 0x4b2b44
dec eax
lea edx, [esp + eax*4 + 0x320]
cmp dword [edx], 0
je 0x4af46d
mov dword [esp + 0x104], eax
mov dword [esp + 0x90], edx
jmp 0x4af49f
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 0x4afbd5
mov dword [esp + 0x368], eax
mov dword [esp + 0x364], eax
cmp dword [esp + 0xa0], 0xfffff000
jle 0x4af5de
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 0x4af656
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 + 0x50b11e]
mov ecx, dword [edx + 0x50ae0c]
mov dword [esp + 0x2a4], ecx
lea ecx, [edx + 0x50ae08]
mov edi, dword [ecx]
mov ecx, dword [ecx - 4]
mov edx, dword [edx + 0x50ae00]
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 0x4af668
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x78]
sar edx, 1
dec eax
js 0x4afba4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x78]
neg eax
cmp ebx, eax
jg 0x4af660
add ebx, dword [esp + 0x78]
test ecx, ecx
je 0x4afbcc
mov eax, dword [esp + 0x2c]
movsx esi, word [eax*2 + 0x50b11e]
shl eax, 4
mov dword [esp + 0x60], esi
mov edx, dword [eax + 0x50ae0c]
mov edi, dword [eax + 0x50ae08]
mov dword [esp + 0x264], edx
mov dword [esp + 0x268], edi
mov esi, dword [eax + 0x50ae04]
mov edx, dword [eax + 0x50ae00]
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 0x4af71a
mov eax, esi
mov ebx, dword [esp + 0xa0]
dec eax
mov dword [esp + esi*4 + 0x1e0], 0
js 0x4af838
mov edx, esi
shr edx, 1
je 0x4b2b6a
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 0x4af7e8
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 0x4af838
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 0x4af903
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 0x4af86b
mov edx, dword [esp + 0x12c]
mov eax, 4
dec edx
jne 0x4af854
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 0x4afa36
mov eax, esi
xor edx, edx
shr eax, 1
mov dword [esp + 0x98], eax
je 0x4b2b60
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 0x4af990
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 0x4afa30
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 0x4afa36
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
test edi, edi
jne 0x4afa58
mov edx, dword [esp + 0x28]
dec edx
lea eax, [esp + edx*4 + 0x2a0]
cmp dword [eax], 0
je 0x4afa3e
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 0x4afaf9
dec dword [esp + 0x74]
add eax, eax
mov dword [esp + 0x2a4], eax
cmp dword [esp + 0x28], 2
jb 0x4afaf9
mov eax, dword [esp + 0x28]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b2b56
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 0x4afa93
mov ebx, dword [esp + 0xa0]
lea ecx, [edx + edx + 1]
lea eax, [ecx - 1]
cmp eax, esi
jae 0x4afaf9
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 0x4afb08
mov ecx, dword [esp + 0x28]
cmp ecx, 4
jb 0x4afb96
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 0x4afb82
mov dword [esp + 0x2a0], 0
mov ecx, 3
cmp dword [esp + 0x2ac], 0xffffffff
je 0x4afb54
lea edx, [esp + 0x2ac]
mov eax, dword [edx]
jmp 0x4afb67
dec ecx
lea edx, [esp + ecx*4 + 0x2a0]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4afb54
test ecx, ecx
je 0x4afb6c
inc eax
mov dword [edx], eax
jmp 0x4afb96
inc dword [esp + 0x74]
mov ecx, 1
mov dword [esp + 0x2a4], 0x80000000
jmp 0x4afb96
mov ecx, 4
test edx, edx
jne 0x4afb96
dec ecx
cmp dword [esp + ecx*4 + 0x2a0], 0
je 0x4afb8b
sar dword [esp + 0x78], 1
dec dword [esp + 0x2c]
jns 0x4af679
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 0x4b026d
mov eax, dword [esp + 0x2c]
jmp 0x4af613
cmp dword [esp + 0xa0], 0x216
jle 0x4b024a
mov dword [esp + 0x368], eax
mov dword [esp + 0x364], eax
cmp dword [esp + 0xa0], 0x1000
jge 0x4afc4e
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 0x4afcc6
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 + 0x50b13a]
mov ecx, dword [edx + 0x50af8c]
mov dword [esp + 0x2a4], ecx
lea ecx, [edx + 0x50af88]
mov edi, dword [ecx]
mov ecx, dword [ecx - 4]
mov edx, dword [edx + 0x50af80]
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 0x4afcd8
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
sar edx, 1
dec eax
js 0x4afba4
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp ebx, dword [esp + 0x7c]
jl 0x4afcd0
sub ebx, dword [esp + 0x7c]
test ecx, ecx
je 0x4b0241
mov eax, dword [esp + 0x78]
movsx esi, word [eax*2 + 0x50b13a]
shl eax, 4
mov dword [esp + 0x60], esi
mov edx, dword [eax + 0x50af8c]
mov edi, dword [eax + 0x50af88]
mov dword [esp + 0x264], edx
mov dword [esp + 0x268], edi
mov esi, dword [eax + 0x50af84]
mov edx, dword [eax + 0x50af80]
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 0x4afd86
mov eax, esi
mov ebx, dword [esp + 0xa0]
dec eax
mov dword [esp + esi*4 + 0x1e0], 0
js 0x4afea4
mov edx, esi
shr edx, 1
je 0x4b2b88
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 0x4afe54
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 0x4afea4
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 0x4aff6f
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 0x4afed7
mov edx, dword [esp + 0x12c]
mov eax, 4
dec edx
jne 0x4afec0
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 0x4b00b6
mov dword [esp + 0x2c], 0
shr eax, 1
mov dword [esp + 0x98], eax
je 0x4b2b7e
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 0x4b0000
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 0x4b00b4
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 0x4b00b6
mov edi, dword [esi]
test edi, edi
jne 0x4b00ce
dec edx
lea esi, [esp + edx*4 + 0x2a0]
cmp dword [esi], 0
je 0x4b00ba
lea eax, [edx - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2a4]
test eax, eax
jle 0x4b0175
dec dword [esp + 0x74]
add eax, eax
mov dword [esp + 0x2a4], eax
cmp edx, 2
jb 0x4b0175
lea edi, [edx - 1]
shr edi, 1
je 0x4b2b74
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 0x4b010a
mov edx, dword [esp]
lea eax, [ecx + ecx + 1]
mov ebx, dword [esp + 0xa0]
lea ecx, [eax - 1]
cmp ecx, dword [esp + 0x28]
jae 0x4b0175
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 0x4b0180
mov ecx, edx
cmp ecx, 4
jb 0x4b020e
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 0x4b01fa
mov dword [esp + 0x2a0], 0
mov ecx, 3
cmp dword [esp + 0x2ac], 0xffffffff
je 0x4b01cc
lea edx, [esp + 0x2ac]
mov eax, dword [edx]
jmp 0x4b01df
dec ecx
lea edx, [esp + ecx*4 + 0x2a0]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x4b01cc
test ecx, ecx
je 0x4b01e4
inc eax
mov dword [edx], eax
jmp 0x4b020e
inc dword [esp + 0x74]
mov ecx, 1
mov dword [esp + 0x2a4], 0x80000000
jmp 0x4b020e
mov ecx, 4
test edx, edx
jne 0x4b020e
dec ecx
cmp dword [esp + ecx*4 + 0x2a0], 0
je 0x4b0203
sar dword [esp + 0x7c], 1
dec dword [esp + 0x78]
jns 0x4afce9
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 0x4b026d
mov eax, dword [esp + 0x78]
jmp 0x4afc83
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 0x4b02e6
movsx edx, word [eax*2 + 0x50b11e]
shl eax, 4
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x50adfc]
mov dword [esp + 0x364], ecx
mov edx, dword [eax + 0x50adf8]
mov ecx, dword [eax + 0x50adf4]
mov eax, dword [eax + 0x50adf0]
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 0x4b2b92
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b02d0
mov dword [esp + 0x7c], eax
jmp 0x4b1039
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 0x4b2d5b
cmp dword [esp + 0xa0], 0x37
jl 0x4b03fa
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 + 0x50b062]
lea eax, [ebx + 1]
shr ecx, 5
cmp ecx, edx
jle 0x4b0395
mov eax, ebx
movzx ecx, word [eax*2 + 0x50b060]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
sub edx, ecx
mov dword [esp + 0xa0], edx
movsx edx, word [eax*2 + 0x50b142]
shl eax, 4
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x50afcc]
mov edx, dword [eax + 0x50afc8]
mov ecx, dword [eax + 0x50afc4]
mov eax, dword [eax + 0x50afc0]
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 0x4b0402
mov dword [esp + 0x78], 0
cmp dword [esp + 0xa0], 0x37
je 0x4b2cf9
mov eax, dword [esp + 0xa0]
lea edx, [eax - 0x1b]
test edx, edx
jle 0x4b2ce4
movsx eax, word [edx*2 + 0x50b4be]
mov dword [esp + 0xc], eax
mov ecx, dword [edx*8 + 0x50b2dc]
mov eax, dword [edx*8 + 0x50b2d8]
mov dword [esp + 0x224], ecx
mov ecx, 2
mov dword [esp + 0x228], eax
mov dword [esp + 0x28], ecx
test eax, eax
jne 0x4b2cd4
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x220], 0
je 0x4b045d
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 + 0x50b4be]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax*8 + 0x50b2dc]
mov eax, dword [eax*8 + 0x50b2d8]
mov dword [esp + 0x364], ecx
mov dword [esp + 0x368], eax
test eax, eax
jne 0x4b2cc8
mov eax, dword [esp + 0x7c]
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b04ba
mov dword [esp + 0x7c], eax
test edx, edx
jle 0x4b0a79
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 0x4b05d0
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 0x4b0546
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 0x4b069c
mov eax, dword [esp + 0x10]
shr eax, 1
mov dword [esp + 8], eax
je 0x4b2cbe
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 0x4b0635
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 0x4b069c
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 0x4b0771
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 0x4b0755
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 0x4b06db
mov eax, dword [esp]
mov edx, dword [esp + 0x28]
dec eax
jne 0x4b06c0
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 0x4b08d0
mov eax, ecx
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x4b2cb4
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 0x4b0810
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 0x4b08ca
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 0x4b08d0
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b08f6
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x360]
cmp dword [eax], 0
je 0x4b08d8
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 0x4b09ab
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x364], eax
cmp dword [esp + 8], 2
jb 0x4b09ab
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b2caa
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 0x4b093c
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 0x4b09ab
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 0x4b09bc
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x4b0a70
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 0x4b0a4c
mov eax, 3
mov dword [esp + 0x360], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x36c], 0xffffffff
je 0x4b0a10
lea ecx, [esp + 0x36c]
mov eax, dword [ecx]
jmp 0x4b0a2c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x360]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b0a12
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4b0a31
inc eax
mov dword [ecx], eax
jmp 0x4b0a79
inc dword [esp + 0x14]
lea ecx, [esp + 0x364]
mov dword [ecx], 0x80000000
mov dword [esp + 0x7c], 1
jmp 0x4b0a79
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x4b2b9e
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b0a5d
mov dword [esp + 0x7c], eax
jmp 0x4b0a79
mov eax, edx
lea ecx, [esp + eax*4 + 0x360]
cmp dword [esp + 0x78], 0
je 0x4b1039
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 0x4b0b08
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 0x4b0c5e
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x4b2ca0
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 0x4b0bf7
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 0x4b0c5e
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 0x4b0d33
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 0x4b0d17
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 0x4b0c9d
mov eax, dword [esp]
mov edx, dword [esp + 0x78]
dec eax
jne 0x4b0c82
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 0x4b0e90
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x4b2c96
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 0x4b0dd0
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 0x4b0e8a
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 0x4b0e90
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b0eb6
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x360]
cmp dword [eax], 0
je 0x4b0e98
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 0x4b0f6b
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x364], eax
cmp dword [esp + 8], 2
jb 0x4b0f6b
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b2c8c
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 0x4b0efc
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 0x4b0f6b
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 0x4b0f7c
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x4b1030
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 0x4b100c
mov eax, 3
mov dword [esp + 0x360], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x36c], 0xffffffff
je 0x4b0fd0
lea ecx, [esp + 0x36c]
mov eax, dword [ecx]
jmp 0x4b0fec
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x360]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b0fd2
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4b0ff1
inc eax
mov dword [ecx], eax
jmp 0x4b1039
inc dword [esp + 0x14]
lea ecx, [esp + 0x364]
mov dword [ecx], 0x80000000
mov dword [esp + 0x7c], 1
jmp 0x4b1039
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x4b2b92
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b101d
mov dword [esp + 0x7c], eax
jmp 0x4b1039
mov eax, edx
lea ecx, [esp + eax*4 + 0x360]
cmp dword [esp + 0xe0], 0
je 0x4b15f9
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 0x4b114a
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 0x4b10c0
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 0x4b1216
mov eax, dword [esp + 8]
shr eax, 1
mov dword [esp + 0xc], eax
je 0x4b2c82
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 0x4b11af
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 0x4b1216
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 0x4b12f1
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 0x4b12d5
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 0x4b1258
mov eax, dword [esp]
mov edx, dword [esp + 0xe0]
dec eax
jne 0x4b123d
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 0x4b1450
mov eax, ecx
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x4b2c78
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 0x4b1390
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 0x4b144a
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 0x4b1450
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b1476
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x360]
cmp dword [eax], 0
je 0x4b1458
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 0x4b152b
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x364], eax
cmp dword [esp + 8], 2
jb 0x4b152b
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b2c6e
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 0x4b14bc
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 0x4b152b
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 0x4b153c
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x4b15f0
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 0x4b15cc
mov eax, 3
mov dword [esp + 0x360], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x36c], 0xffffffff
je 0x4b1590
lea ecx, [esp + 0x36c]
mov eax, dword [ecx]
jmp 0x4b15ac
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x360]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x4b1592
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4b15b1
inc eax
mov dword [ecx], eax
jmp 0x4b15f9
inc dword [esp + 0x14]
lea ecx, [esp + 0x364]
mov dword [ecx], 0x80000000
mov dword [esp + 0x7c], 1
jmp 0x4b15f9
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x4b2baa
dec eax
lea ecx, [esp + eax*4 + 0x360]
cmp dword [ecx], 0
je 0x4b15dd
mov dword [esp + 0x7c], eax
jmp 0x4b15f9
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 0x4b171a
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 0x4b1693
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 0x4b17e6
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x4b2c64
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 0x4b177f
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 0x4b17e6
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 0x4b18be
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 0x4b18a2
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 0x4b1828
mov eax, dword [esp]
mov edx, dword [esp + 0x7c]
dec eax
jne 0x4b180d
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 0x4b1a36
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x28], eax
je 0x4b2c5a
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 0x4b1970
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 0x4b1a30
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 0x4b1a36
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x4b1a60
mov ecx, dword [esp + 8]
dec ecx
lea edx, [esp + ecx*4 + 0x320]
mov eax, dword [edx]
test eax, eax
je 0x4b1a3e
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 0x4b1b29
dec dword [esp + 0x108]
add edx, edx
mov dword [esp + 0x324], edx
cmp dword [esp + 8], 2
jb 0x4b1b23
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x4b2bb6
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 0x4b1aa9
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 0x4b1b23
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 0x4b1b29
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
mov eax, dword [esp + 0x104]
je 0x4b1b38
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 0x4b1b5c
mov ecx, 6
mov eax, ecx
and eax, 2
test cl, 4
je 0x4b1b7a
test eax, eax
mov eax, 0xaaaa
jne 0x4b1b74
mov eax, 0xfa
mov dword [esp + 8], eax
jmp 0x4b1b9b
test eax, eax
je 0x4b1b88
mov dword [esp + 8], 0xfa00
jmp 0x4b1b9b
mov eax, 0xa8a8
test cl, 1
je 0x4b1b97
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 0x4b1bbb
mov dword [esp + 0x78], 0x71
jmp 0x4b1bc6
cmp dword [esp + 0x78], 0
js 0x4af272
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 0x4b1c0e
add ecx, 0xfffffffe
test ecx, 0xfffffffd
je 0x4b1c0e
mov eax, ebx
and eax, 8
mov dword [esp + 0x28], eax
jmp 0x4b1eba
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 0x4b1d2f
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 0x4b1e0a
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x74]
lea edx, [edx + eax + 1]
cmp edx, dword [esp + 0x28]
ja 0x4b1e0a
mov eax, dword [esp + 0x28]
sub eax, edx
inc eax
mov dword [esp + 0x28], eax
shr eax, 1
mov dword [esp + 4], eax
je 0x4b2bc0
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 0x4b1ce5
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 0x4b1e0a
add edx, ecx
mov eax, dword [esp + 0x160]
or eax, dword [esp + edx*4 + 0x31c]
mov dword [esp + 0x160], eax
jmp 0x4b1e0a
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 0x4b1e02
mov edx, dword [esp + 4]
mov eax, ecx
lea edx, [eax + edx + 2]
add eax, 2
cmp eax, dword [esp + 0x28]
ja 0x4b1e02
mov eax, dword [esp + 0x28]
sub eax, edx
inc eax
mov dword [esp + 0x28], eax
shr eax, 1
mov dword [esp + 4], eax
je 0x4b2bca
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 0x4b1db7
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 0x4b1e0a
add edx, ecx
mov eax, dword [esp + 0x160]
or eax, dword [esp + edx*4 + 0x31c]
mov dword [esp + 0x160], eax
jmp 0x4b1e0a
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 0x4b1eba
cmp dword [esp + 0x60], 0
je 0x4b1e93
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x14], eax
cmp eax, edx
jae 0x4b2c03
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 0x4b1e75
mov dword [esp + 0x104], edx
cmp dword [esp + 0x104], 0
jne 0x4b1eb2
inc dword [esp + 0x108]
mov dword [esp + 0x324], 0x80000000
mov dword [esp + 0x104], 1
jmp 0x4b1eba
inc eax
mov dword [esp + edx*4 + 0x320], eax
cmp dword [esp + 0x108], 0x4000
jle 0x4b2005
mov eax, dword [esp + 0x188]
and eax, 0x1c00000
cmp eax, 0x400000
je 0x4b1fc6
cmp eax, 0x1000000
jne 0x4b1f27
cmp dword [esp + 0x28], 0
je 0x4b1f6c
mov eax, dword [0x50b8b0]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x50b8b4]
mov ecx, dword [0x50b8b8]
mov eax, dword [0x50b8bc]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b2412
cmp eax, 0x800000
jne 0x4b1f6c
cmp dword [esp + 0x28], 0
jne 0x4b1f6c
mov eax, dword [0x50b8a0]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x50b8a4]
mov ecx, dword [0x50b8a8]
mov eax, dword [0x50b8ac]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b2412
cmp dword [esp + 0x28], 0
je 0x4b1f7a
mov eax, 0x50b830
jmp 0x4b1f7f
mov eax, 0x50b820
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 0x4b2412
mov ebx, edx
jmp 0x4b2412
cmp dword [esp + 0x28], 0
je 0x4b1fd4
mov eax, 0x50b8b0
jmp 0x4b1fd9
mov eax, 0x50b8a0
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 0x4b2412
cmp dword [esp + 0x108], 0xffffc002
jg 0x4b2124
cmp dword [esp + 0x108], 0xffffbf93
jl 0x4b2034
test dword [esp + 0x188], 0x10000000
je 0x4b2124
mov eax, dword [esp + 0x188]
and eax, 0x1c00000
cmp eax, 0x1000000
jne 0x4b2085
cmp dword [esp + 0x28], 0
jne 0x4b20ca
mov eax, dword [0x50b840]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x50b844]
mov ecx, dword [0x50b848]
mov eax, dword [0x50b84c]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b2412
cmp eax, 0x800000
jne 0x4b20ca
cmp dword [esp + 0x28], 0
je 0x4b20ca
mov eax, dword [0x50b850]
mov dword [esp + 0x3a0], eax
mov edx, dword [0x50b854]
mov ecx, dword [0x50b858]
mov eax, dword [0x50b85c]
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], eax
jmp 0x4b2412
cmp dword [esp + 0x28], 0
je 0x4b20d8
mov eax, 0x50b7f0
jmp 0x4b20dd
mov eax, 0x50b7e0
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 0x4b2412
mov ebx, edx
jmp 0x4b2412
mov eax, dword [esp + 0x324]
mov dword [esp + 8], eax
cmp dword [esp + 0x104], 2
jae 0x4b2143
mov dword [esp + 0x10], 0
jmp 0x4b214e
mov eax, dword [esp + 0x328]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x104], 3
jae 0x4b2162
mov dword [esp + 0xc], 0
jmp 0x4b216d
mov eax, dword [esp + 0x32c]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x104], 4
jae 0x4b2181
mov dword [esp + 0x14], 0
jmp 0x4b218c
mov eax, dword [esp + 0x330]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x108], 0xffffc002
jle 0x4b2205
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 0x4b23d5
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 0x4b235c
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 0x4b235c
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 0x4b2bf6
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 0x4b2be7
mov eax, edx
mov dword [esp + 0x14], 0
lea edx, [eax - 0x406e]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b2bd4
mov dword [esp + 0x14], 0
lea edx, [eax - 0x408e]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b2bd4
mov dword [esp + 0x14], 0
lea edx, [eax - 0x40ae]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b2bd4
mov dword [esp + 0x14], 0
lea edx, [eax - 0x40ce]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b2bd4
lea edx, [eax - 0x40ee]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b234a
lea edx, [eax - 0x410e]
mov dword [esp + 4], edx
cmp edx, 0x20
jl 0x4b234a
mov eax, edx
add eax, 0xffffffe0
cmp eax, 0x20
jge 0x4b233e
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 0x4b23d5
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 0x4b2404
mov edx, eax
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3ac], edx
cmp dword [esp + 0x184], 0
je 0x4b243d
test dword [esp + 0x188], 0x40000
je 0x4b2434
mov eax, dword [esp + 0x184]
mov dword [eax], esi
jmp 0x4b243d
mov eax, dword [esp + 0x184]
mov dword [eax], edi
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x4b2449
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 [0x543b10]
jne 0x4b2a20
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 [0x50b8e4]
jb 0x4b2e20
mov ecx, 2
je 0x4b2507
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 0x4b252c
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 + 0x50b8c0]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x1a4]
cmp ecx, 1
jle 0x4b3143
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 0x4b255a
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 0x4b2629
mov dword [esp + ecx*4 + 0x1a4], 0
mov edx, 2
cmp dword [esp + 0x1a8], 0xffffffff
je 0x4b2608
lea edx, [esp + 0x1a8]
mov esi, dword [edx]
jmp 0x4b2626
mov dword [esp + edx*4 + 0x1a0], 0
inc edx
lea eax, [esp + edx*4 + 0x1a0]
mov esi, dword [eax]
cmp esi, 0xffffffff
je 0x4b2608
mov edx, eax
xor eax, eax
inc esi
mov dword [edx], esi
inc ecx
cmp ecx, edi
ja 0x4b2e04
jne 0x4b2533
lea esi, [esi]
mov edx, dword [esp + 0x94]
jmp 0x4b2525
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 0x4aeea0
call fcn.004cf95b
mov dword [esp + 0xa4], esi
mov edx, dword [esp]
jmp 0x4aedad
mov edx, dword [esp + 0x94]
jmp 0x4aeea0
mov dword [esp], 1
jmp 0x4af153
mov eax, dword [esp + 0x104]
shr eax, 1
mov dword [esp + 4], eax
je 0x4b2b3b
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 0x4b2acd
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 0x4af228
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 0x4af228
mov dword [esp], 1
jmp 0x4b2aff
lea eax, [esp + 0x330]
mov dword [eax - 0x2a0], eax
jmp 0x4af49f
mov ecx, 1
jmp 0x4afad6
mov eax, 1
jmp 0x4af9f5
mov edx, 1
jmp 0x4af814
mov eax, 1
jmp 0x4b0150
mov edi, 1
jmp 0x4b0069
mov edx, 1
jmp 0x4afe80
lea ecx, [esp + 0x370]
jmp 0x4b1039
lea ecx, [esp + 0x370]
jmp 0x4b0a79
lea ecx, [esp + 0x370]
jmp 0x4b15f9
mov eax, 1
jmp 0x4b1af3
mov ecx, 1
jmp 0x4b1d06
mov ecx, 1
jmp 0x4b1dd8
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
jmp 0x4b235c
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
jmp 0x4b235c
mov dword [esp + 8], 0
jmp 0x4b235c
cmp dword [esp + 0x78], 0
je 0x4b2c26
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 0x4b2c31
mov edx, dword [esp + 0x60]
mov dword [esp + edx*4 + 0x320], eax
cmp dword [esp + 0x14], 0
jne 0x4b1eba
mov eax, dword [esp + 0x104]
dec eax
cmp dword [esp + eax*4 + 0x320], 0
je 0x4b2c43
mov dword [esp + 0x104], eax
jmp 0x4b1eba
mov edx, 1
jmp 0x4b19cf
mov edx, 1
jmp 0x4b17ae
mov eax, 1
jmp 0x4b1506
mov edx, 1
jmp 0x4b13ef
mov edx, 1
jmp 0x4b11de
mov eax, 1
jmp 0x4b0f46
mov edx, 1
jmp 0x4b0e2f
mov edx, 1
jmp 0x4b0c26
mov eax, 1
jmp 0x4b0986
mov edx, 1
jmp 0x4b086f
mov edx, 1
jmp 0x4b0664
lea ecx, [esp + 0x368]
jmp 0x4b04cb
mov dword [esp + 0xa0], 0x1b
jmp 0x4b0477
xor eax, eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x224], eax
jmp 0x4b0477
movsx edx, word [0x50b142]
xor eax, eax
mov ecx, dword [0x50afcc]
mov dword [esp + 0x228], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x364], ecx
mov eax, dword [0x50afc8]
mov edx, dword [0x50afc4]
mov ecx, dword [0x50afc0]
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 0x4b0a79
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 + 0x50aee0]
lea eax, [edi + 1]
shr ecx, 5
cmp ecx, ebx
jl 0x4b2d95
mov eax, edi
movzx ecx, word [eax*2 + 0x50aee0]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
add edx, ecx
mov dword [esp + 0xa0], edx
movsx edx, word [eax*2 + 0x50b126]
shl eax, 4
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x50ae4c]
mov edi, dword [eax + 0x50ae48]
mov edx, dword [eax + 0x50ae44]
mov eax, dword [eax + 0x50ae40]
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 0x4b0402
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 0x4b3126
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 0x4b2e3e
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 0x4b2e97
mov dword [esp + 0xcc], esi
mov esi, dword [esp + 0xc]
add ecx, ecx
inc esi
test ecx, ecx
jg 0x4b2e7f
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 0x4b2fff
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 0x4b30da
lea eax, [esp + edx + 0x320]
mov edx, ecx
mov dword [esp + 8], eax
shr edx, 1
mov dword [esp + 0x2c], edx
je 0x4b3110
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 0x4b2f40
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 0x4b30e5
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 0x4b30e5
cmp dword [esp + 0x104], 0
je 0x4b30da
mov eax, dword [esp + 0x104]
lea ecx, [esp + edx + 0x320]
mov dword [esp + 8], ecx
shr eax, 1
mov dword [esp + 4], eax
je 0x4b311a
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 0x4b3062
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 0x4b30e5
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 0x4b30e5
lea eax, [esp + edx + 0x320]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp dword [eax], 0
jne 0x4af32a
mov eax, dword [esp + 0x104]
dec eax
cmp dword [esp + eax*4 + 0x320], 0
je 0x4b30f9
mov dword [esp + 0x104], eax
jmp 0x4af32a
mov eax, 1
jmp 0x4b2fa7
mov dword [esp], 1
jmp 0x4b3095
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 0x4b2e65
mov esi, eax
jmp 0x4b25cf
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 0x4aeea0
mov edx, dword [esp + 0xa4]
jmp 0x4aea47
xor esi, esi
mov ebx, 0x6000000
jmp 0x4b2412