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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x14c
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
mov edx, dword [esp + 0x160]
mov eax, dword [eax + 0x188]
mov esi, dword [ebx]
cmp dword [edx + 0x3a534], 2
mov ecx, dword [ebx + 0x44]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x80], esi
mov esi, dword [ebx + 0x10]
mov eax, dword [eax + 0x3a568]
mov dword [esp + 0x58], esi
mov esi, dword [ebx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x160]
mov eax, dword [eax + 0x3a56c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x160]
mov eax, dword [eax + 0x3a570]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x160]
mov eax, dword [eax + 0x3a574]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x40]
je 0xbd60a8
lea edx, [eax + eax]
mov edi, esi
sub edi, edx
lea edx, [ecx + ecx]
sub esi, edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x4c], esi
mov edx, dword [esp + 0x24]
add eax, 2
sar eax, 2
cmp edx, eax
mov dword [esp + 0x90], edx
jg 0xbd4a2c
cmp eax, dword [esp + 0x30]
cmovg eax, dword [esp + 0x30]
mov dword [esp + 0x90], eax
mov esi, dword [esp + 0x28]
add ecx, 2
sar ecx, 2
cmp esi, ecx
mov dword [esp + 0x8c], esi
jg 0xbd4a51
cmp ecx, dword [esp + 0x34]
cmovg ecx, dword [esp + 0x34]
mov dword [esp + 0x8c], ecx
mov eax, dword [ebx + 0x38]
mov edi, dword [esp + 0x80]
mov dword [esp + 4], 0x10
mov ebp, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x8c]
add edi, 0x27d58
add eax, dword [esp + 0x90]
add eax, dword [esp + 0x58]
mov dword [esp + 0x60], edi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [ebp + edi*4 + 4]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x90]
mov ebp, dword [esp + 0x4c]
lea esi, [edi + esi*8]
mov edi, dword [esp + 0x8c]
mov ecx, eax
movsx edx, word [esi]
mov dword [esp + 0x50], esi
mov esi, 0x10000000
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x8c]
movsx eax, word [edi]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x2c], ebp
add edx, eax
lea eax, [ecx + edx]
cmp eax, 0x10000000
cmovl esi, eax
mov eax, dword [esp + 0x16c]
sub esi, edx
mov dword [esp + 0x40], edi
test eax, eax
jle 0xbd4bea
xor eax, eax
mov edi, dword [esp + 0x168]
mov dword [esp + 0x54], esi
mov ebp, eax
mov dword [esp + 0x3c], ebx
jmp 0xbd4b2d
cmp dword [esp + 0x40], ebx
jne 0xbd4b6a
add ebp, 1
add edi, 8
cmp ebp, dword [esp + 0x16c]
je 0xbd4be2
mov eax, dword [edi]
mov ebx, dword [esp + 0x24]
add eax, 2
sar eax, 2
cmp ebx, eax
jg 0xbd4b48
mov ebx, dword [esp + 0x30]
cmp eax, dword [esp + 0x30]
cmovle ebx, eax
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x28]
add eax, 2
sar eax, 2
cmp esi, eax
jg 0xbd4b64
mov esi, dword [esp + 0x34]
cmp eax, dword [esp + 0x34]
cmovle esi, eax
cmp dword [esp + 0x2c], esi
je 0xbd4b14
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov eax, dword [edx + 0x38]
mov dword [esp + 4], 0x10
mov dword [esp + 0xc], eax
imul eax, esi
add eax, ebx
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x28]
mov edx, dword [esp + 0x160]
mov dword [esp], eax
call dword [edx + ecx*4 + 4]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
movsx ecx, word [eax + ebx*8]
movsx eax, word [edx + esi*8]
add eax, ecx
add eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x54]
jge 0xbd4b1a
add ebp, 1
add edi, 8
cmp ebp, dword [esp + 0x16c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], ebx
jne 0xbd4b2d
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x38]
mov edi, dword [esp + 0x58]
mov dword [esp + 4], 0x10
mov ebp, dword [esp + 0x60]
mov edx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [edx + ebp*4 + 4]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
movsx edx, word [edi]
mov ecx, eax
movsx eax, word [ebp]
add eax, edx
add ecx, eax
cmp ecx, esi
jge 0xbd4c41
mov esi, ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x160]
add edi, 8
add ebp, 8
mov dword [esp + 0x30], edi
mov eax, dword [edx + 0x3a534]
mov dword [esp + 0x44], ebp
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
sub edi, 8
sub ebp, 8
cmp eax, 1
mov dword [esp + 0x48], edi
mov dword [esp + 0x74], ebp
je 0xbd5e50
jle 0xbd6b2e
cmp eax, 2
je 0xbd4d4e
cmp eax, 3
je 0xbd6731
mov edi, dword [esp + 0x40]
shl edi, 2
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x34]
shl edi, 2
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x38]
movsx edx, word [edi + ebp*2]
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
movsx eax, word [edi + ebp*2]
add eax, edx
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x8c]
cmp dword [esp + 0x2c], edi
mov dword [ebx + 0x50], ebp
mov dword [ebx + 0x54], edx
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], esi
jne 0xbd4cfe
mov ebp, dword [esp + 0x90]
cmp dword [esp + 0x40], ebp
jne 0xbd4cfe
add eax, esi
mov dword [ebx + 0x4c], eax
mov edx, dword [esp + 0x160]
mov eax, dword [edx + 0x3a538]
cmp eax, 1
jle 0xbd4d43
mov edx, dword [esp + 0x170]
shl eax, 4
mov ecx, dword [eax + 0x12719a8]
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov edx, dword [eax + 0x12719ac]
mov eax, dword [esp + 0x160]
mov dword [esp], edx
mov edx, ebx
call fcn.00bd3930
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebx + 0x38]
lea ebp, [esp + 0x11c]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x80]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x14], edx
imul eax, edx
add eax, dword [esp + 0x90]
add edi, 0x27d84
add eax, dword [esp + 0x58]
mov dword [esp + 0x7c], edi
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
lea ecx, [eax - 1]
mov dword [esp + 0xc], ecx
lea ecx, [eax + edx]
sub eax, edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
sub edi, 1
movsx edx, word [ecx]
movsx eax, word [ebp + edi*8]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x11c]
add eax, edx
add edi, 1
add eax, ecx
movsx ecx, word [ebp + edi*8]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x28], eax
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x38]
add ecx, edx
mov edx, dword [esp + 0x5c]
sub ebp, 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x50], ebp
movsx edi, word [edx]
movsx edx, word [eax + ebp*8]
mov ebp, dword [esp + 0x90]
add ecx, dword [esp + 0x120]
add edx, edi
add ebp, 1
movsx eax, word [eax + ebp*8]
add edx, dword [esp + 0x124]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x3c], eax
add eax, edi
add eax, dword [esp + 0x128]
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], eax
jg 0xbd6965
mov dword [esp + 0x28], esi
cmp dword [esp + 0x28], ecx
jle 0xbd4e87
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x28], edx
jle 0xbd4ea4
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x8c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], edx
cmp dword [esp + 0x28], eax
jle 0xbd4ebd
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], edi
mov ebp, dword [esp + 0x8c]
or ebp, dword [esp + 0x90]
jne 0xbd6e89
cmp dword [esp + 0x80], 6
je 0xbd6fb5
mov edi, dword [esp + 0x2c]
or edi, dword [esp + 0x40]
je 0xbd6e74
mov ebp, dword [esp + 0x8c]
cmp dword [esp + 0x2c], ebp
jne 0xbd6fbe
mov edi, dword [esp + 0x90]
cmp dword [esp + 0x40], edi
jne 0xbd6fbe
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x80]
mov eax, 0x7d0
mov ebp, dword [ebp*4 + 0x1271880]
mov ecx, ebp
sar eax, cl
cmp eax, dword [esp + 0x28]
mov dword [esp + 0xdc], ebp
jg 0xbd716c
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
sub eax, dword [esp + 0x40]
sub edx, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
cmp eax, edx
cmovle edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
sub eax, dword [esp + 0x2c]
sub edx, dword [esp + 0x74]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x94], 3
cmp eax, edx
cmovle edx, eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x16c]
test eax, eax
je 0xbd50fc
cmp dword [esp + 0x16c], 1
je 0xbd8277
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x24], 0
sub eax, 1
test ecx, ecx
mov dword [esp + 0x50], eax
je 0xbd500b
mov edi, dword [esp + 0x168]
mov edx, dword [ebx + 0x40]
mov ebp, dword [esp + 0x168]
sub edx, dword [edi]
mov edi, edx
sar edi, 0x1f
mov ecx, edi
xor ecx, edx
mov edx, dword [ebx + 0x44]
sub edx, dword [ebp + 4]
sub ecx, edi
mov edi, edx
sar edi, 0x1f
xor edx, edi
sub edx, edi
add edx, ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x50], edx
test eax, eax
jle 0xbd507d
mov ebp, dword [esp + 0x168]
mov dword [esp + 0x78], ebx
mov ebx, 1
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], esi
mov edx, dword [ebp]
mov eax, ebp
mov edi, dword [ebp + 4]
mov ecx, edx
mov edx, edi
jmp 0xbd5044
mov ecx, edi
mov edx, ebp
mov edi, dword [eax + 8]
add ebx, 1
mov ebp, dword [eax + 0xc]
add eax, 8
sub ecx, edi
mov esi, ecx
sub edx, ebp
sar esi, 0x1f
xor ecx, esi
sub ecx, esi
mov esi, edx
sar esi, 0x1f
xor edx, esi
sub edx, esi
add edx, ecx
add dword [esp + 0x24], edx
cmp ebx, dword [esp + 0x16c]
jne 0xbd5040
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x50]
mov edi, eax
mov ebp, dword [esp + 0x80]
mov eax, 0x3e8
xor edx, edx
mov ecx, dword [ebp*4 + 0x1271880]
sar eax, cl
cmp esi, eax
jl 0xbd50c5
mov eax, 0x7d0
mov dl, 1
sar eax, cl
cmp esi, eax
jl 0xbd50c5
mov eax, 0xfa0
xor edx, edx
sar eax, cl
cmp esi, eax
setge dl
add edx, 2
xor eax, eax
cmp edi, 9
jle 0xbd50de
cmp edi, 0x13
mov al, 1
jle 0xbd50de
xor eax, eax
cmp edi, 0x27
setg al
add eax, 2
lea eax, [edx + eax*4]
mov eax, dword [eax*4 + 0x12718a0]
imul eax, dword [esp + 0x6c]
test eax, eax
lea edx, [eax + 3]
cmovs eax, edx
sar eax, 2
mov dword [esp + 0x6c], eax
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x6c], edi
mov ecx, dword [esp + 0x94]
jg 0xbd52fc
mov ebp, dword [esp + 0x6c]
sub ebp, 2
cmp ecx, ebp
mov dword [esp + 0x84], ebp
jge 0xbd52fc
mov ebp, dword [esp + 0x4c]
mov eax, 0xfffffffe
mov edi, dword [esp + 0x2c]
sub eax, dword [esp + 0x94]
mov dword [esp + 0x78], ebx
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x40]
mov ebx, eax
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x94]
add ebp, 2
mov dword [esp + 0x70], ebp
nop
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x54]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
imul eax, edx
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
lea edx, [eax + ebx]
mov dword [esp + 0x10], edx
lea edx, [eax + edi + 2]
mov dword [esp + 0xc], edx
lea edx, [eax + ebx + 2]
add eax, edi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [edx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x11c]
movsx ecx, word [ecx]
add edx, edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], ecx
movsx ecx, word [ebp + edx*8]
mov edx, dword [esp + 0x70]
add ecx, dword [esp + 0x24]
add edx, ebx
add ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
movsx edx, word [ebp + edx*8]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x11c], ecx
add edx, dword [esp + 0x24]
add ebp, edi
movsx ecx, word [eax + ebp*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x38]
add edx, dword [esp + 0x120]
add eax, ecx
mov ecx, dword [esp + 0x40]
add eax, dword [esp + 0x124]
mov dword [esp + 0x120], edx
add ecx, ebx
movsx ebp, word [ebp + ecx*8]
mov dword [esp + 0x124], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0xa0], ebp
add ebp, dword [esp + 0x24]
add ebp, dword [esp + 0x128]
cmp dword [esp + 0x9c], esi
mov dword [esp + 0x128], ebp
jge 0xbd5287
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x64], ecx
cmp esi, edx
jle 0xbd529d
mov esi, edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], edx
cmp esi, eax
jle 0xbd52b3
mov esi, eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], eax
cmp esi, ebp
jle 0xbd52c9
mov esi, ebp
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ebp
add edi, 4
sub ebx, 4
cmp dword [esp + 0x84], edi
jg 0xbd5160
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x94]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x78]
sub eax, 3
and eax, 0xfffffffc
lea ecx, [edi + eax + 4]
cmp dword [esp + 0x6c], ecx
jle 0xbd543d
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x24], esi
mov esi, ecx
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x40]
sub ebp, ecx
add edi, ecx
jmp 0xbd534d
cmp dword [esp + 0x48], ebp
jle 0xbd53c0
add esi, 2
add edi, 2
sub ebp, 2
cmp dword [esp + 0x6c], esi
jle 0xbd5439
cmp dword [esp + 0x30], edi
jl 0xbd5330
mov eax, dword [ebx + 0x38]
mov edx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov ecx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x2c]
add eax, edi
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
movsx edx, word [edx + edi*8]
mov dword [esp + 0x3c], edx
movsx edx, word [ecx]
add edx, dword [esp + 0x3c]
add edx, eax
cmp dword [esp + 0x24], edx
jle 0xbd5330
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x48], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], eax
jg 0xbd533a
nop
mov eax, dword [ebx + 0x38]
mov edx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov ecx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x2c]
add eax, ebp
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
movsx edx, word [edx + ebp*8]
mov dword [esp + 0x3c], edx
movsx edx, word [ecx]
add edx, dword [esp + 0x3c]
add edx, eax
cmp dword [esp + 0x24], edx
jle 0xbd533a
mov eax, dword [esp + 0x2c]
add esi, 2
add edi, 2
mov dword [esp + 0x64], ebp
sub ebp, 2
cmp dword [esp + 0x6c], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x5c], eax
jg 0xbd534d
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x98]
shr eax, 0x1f
add eax, dword [esp + 0x6c]
sar eax, 1
cmp eax, edi
mov dword [esp + 0x34], eax
jle 0xbd8074
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x34], ecx
jle 0xbd559e
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x2c], esi
mov esi, ecx
sub ebp, ecx
add edi, ecx
jmp 0xbd54af
cmp dword [esp + 0x74], ebp
jle 0xbd5521
add esi, 2
add edi, 2
sub ebp, 2
cmp dword [esp + 0x34], esi
jle 0xbd559a
cmp dword [esp + 0x44], edi
jl 0xbd5492
mov eax, dword [ebx + 0x38]
mov edx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov ecx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, edi
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
movsx edx, word [edx]
mov dword [esp + 0x3c], edx
movsx edx, word [ecx + edi*8]
add edx, dword [esp + 0x3c]
add edx, eax
cmp dword [esp + 0x2c], edx
jle 0xbd5492
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x74], ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x64], eax
jg 0xbd549c
mov eax, dword [ebx + 0x38]
mov edx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov ecx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, ebp
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
call dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
movsx edx, word [edx]
mov dword [esp + 0x3c], edx
movsx edx, word [ecx + ebp*8]
add edx, dword [esp + 0x3c]
add edx, eax
cmp dword [esp + 0x2c], edx
jle 0xbd549c
mov eax, dword [esp + 0x40]
add esi, 2
add edi, 2
mov dword [esp + 0x5c], ebp
sub ebp, 2
cmp dword [esp + 0x34], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x64], eax
jg 0xbd54af
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x28], esi
jne 0xbd7ec9
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x38]
add edi, 1
lea ebp, [ebp + edi*8]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x4c]
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x38]
lea ebp, [edi + ebp*8]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x9c], ebp
mov ebp, dword [esp + 0x4c]
add edi, 1
lea ebp, [ebp + edi*8]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x38]
sub edi, 1
lea ebp, [ebp + edi*8]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x4c]
sub edi, 1
lea ebp, [ebp + edi*8]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x7c]
imul eax, edx
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], ebp
add ecx, eax
mov eax, ecx
sub eax, edx
add eax, 1
mov dword [esp + 0x10], eax
mov eax, edx
not eax
add eax, ecx
mov dword [esp + 0xc], eax
lea eax, [ecx + edx - 1]
mov dword [esp + 8], eax
lea eax, [ecx + edx + 1]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x34]
movsx edi, word [edx]
movsx eax, word [ecx]
movsx ebp, word [ebp]
mov edx, dword [esp + 0x3c]
lea ecx, [edi + eax]
mov dword [esp + 0x50], ebp
add eax, ebp
movsx ebp, word [edx]
mov edx, dword [esp + 0x50]
add ecx, dword [esp + 0x11c]
add eax, dword [esp + 0x120]
add edi, ebp
add edx, ebp
add edi, dword [esp + 0x128]
add edx, dword [esp + 0x124]
cmp esi, ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], edi
jle 0xbd571b
mov esi, ecx
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ecx
cmp esi, eax
jle 0xbd5737
mov esi, eax
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
cmp esi, edx
jle 0xbd5753
mov ebp, dword [esp + 0x88]
mov esi, edx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
cmp esi, edi
jle 0xbd576c
mov edx, dword [esp + 0x88]
mov esi, edi
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ebp, dword [esp + 0x7c]
imul eax, ecx
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], edi
add edx, eax
lea eax, [edx + ecx*2 + 2]
mov dword [esp + 0x10], eax
lea eax, [edx + ecx + 2]
mov dword [esp + 0xc], eax
lea eax, [edx + 2]
mov dword [esp + 8], eax
mov eax, edx
sub eax, ecx
add eax, 2
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x98]
add edi, 2
lea ebp, [ebp + edi*8]
movsx eax, word [ebp]
mov dword [esp + 0x50], edi
mov dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0xa4], eax
movsx eax, word [edx]
mov edi, dword [esp + 0xa4]
movsx edx, word [ebp]
mov ebp, dword [esp + 0x5c]
add edx, dword [esp + 0xa4]
add edi, eax
movsx eax, word [ecx]
mov ecx, dword [esp + 0xa4]
add ebp, 2
add edi, dword [esp + 0x11c]
add edx, dword [esp + 0x124]
add ecx, eax
mov eax, dword [esp + 0x4c]
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x124], edx
lea eax, [eax + ebp*8]
mov dword [esp + 0x70], eax
movsx eax, word [eax]
add eax, dword [esp + 0xa4]
add eax, dword [esp + 0x128]
cmp esi, edi
mov dword [esp + 0x120], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x128], eax
jle 0xbd588b
mov esi, edi
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0xbd58a1
mov edi, dword [esp + 0x5c]
mov esi, ecx
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
cmp esi, edx
jle 0xbd58ba
mov esi, edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
cmp esi, eax
jle 0xbd58d0
mov edi, dword [esp + 0x68]
mov esi, eax
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
mov edi, dword [ebx + 0x38]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
lea ecx, [edi + edi]
imul eax, edi
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
add edx, eax
lea eax, [edx + edi*2 - 2]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
lea eax, [edx + ecx - 1]
mov dword [esp + 0xc], eax
lea eax, [edx + ecx]
mov dword [esp + 8], eax
lea eax, [edx + ecx + 1]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x9c]
movsx edx, word [edx]
movsx eax, word [ecx]
mov edi, edx
mov ecx, edx
add edi, eax
movsx eax, word [ebp]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0xa4], edx
add edi, dword [esp + 0x11c]
add ecx, eax
mov eax, dword [esp + 0x34]
sub ebp, 2
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edi
movsx edx, word [eax]
mov eax, dword [esp + 0x38]
add edx, dword [esp + 0xa4]
add edx, dword [esp + 0x124]
mov dword [esp + 0x120], ecx
lea eax, [eax + ebp*8]
mov dword [esp + 0xa8], eax
movsx eax, word [eax]
add eax, dword [esp + 0xa4]
add eax, dword [esp + 0x128]
cmp esi, edi
mov dword [esp + 0x124], edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x128], eax
jle 0xbd59ce
mov esi, edi
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0xbd59e4
mov esi, ecx
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ecx
cmp esi, edx
jle 0xbd59fd
mov esi, edx
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edx
cmp esi, eax
jle 0xbd5a13
mov ecx, dword [esp + 0x68]
mov esi, eax
mov edi, dword [esp + 0x70]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x7c]
imul eax, ecx
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], ebp
add edx, eax
mov eax, ecx
neg eax
lea eax, [edx + eax*2 - 2]
mov dword [esp + 0x10], eax
mov eax, edx
sub eax, ecx
sub eax, 2
mov dword [esp + 0xc], eax
lea eax, [edx - 2]
mov dword [esp + 8], eax
lea eax, [edx + ecx - 2]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
movsx edx, word [edx]
movsx eax, word [ecx]
mov edi, edx
mov ecx, edx
add edi, eax
movsx eax, word [ebp]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x68], edx
add edi, dword [esp + 0x11c]
add ecx, eax
mov eax, dword [esp + 0x3c]
sub ebp, 2
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edi
movsx edx, word [eax]
mov eax, dword [esp + 0x4c]
add edx, dword [esp + 0x68]
add edx, dword [esp + 0x124]
mov dword [esp + 0x120], ecx
lea eax, [eax + ebp*8]
mov dword [esp + 0x3c], eax
movsx eax, word [eax]
add eax, dword [esp + 0x68]
add eax, dword [esp + 0x128]
cmp esi, edi
mov dword [esp + 0x124], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x128], eax
jle 0xbd5b0f
mov esi, edi
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0xbd5b25
mov edi, dword [esp + 0x5c]
mov esi, ecx
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
cmp esi, edx
jle 0xbd5b3e
mov esi, edx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
cmp esi, eax
jle 0xbd5b54
mov edi, dword [esp + 0x40]
mov esi, eax
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
mov edi, dword [ebx + 0x38]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov ecx, edi
imul eax, edi
neg ecx
add eax, dword [esp + 0x64]
add ecx, ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x7c]
add edx, eax
lea eax, [edx + ecx + 2]
mov dword [esp + 0x10], eax
lea eax, [edx + ecx + 1]
mov dword [esp + 0xc], eax
lea eax, [edx + ecx]
mov dword [esp + 8], eax
lea eax, [edx + ecx - 1]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
movsx ebp, word [edx]
movsx eax, word [ecx]
mov edx, dword [esp + 0x9c]
lea edi, [eax + ebp]
movsx eax, word [edx]
add edi, dword [esp + 0x11c]
lea ecx, [ebp + eax]
mov eax, dword [esp + 0x2c]
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edi
movsx edx, word [eax]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x120], ecx
add edx, ebp
movsx eax, word [eax]
add edx, dword [esp + 0x124]
mov dword [esp + 0x2c], eax
add eax, ebp
add eax, dword [esp + 0x128]
cmp esi, edi
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], eax
jle 0xbd5c37
mov esi, edi
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0xbd5c4d
mov esi, ecx
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ecx
cmp esi, edx
jle 0xbd5c63
mov esi, edx
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edx
cmp esi, eax
jle 0xbd5c79
mov ecx, dword [esp + 0x40]
mov esi, eax
mov edi, dword [esp + 0x50]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x28]
add eax, 3
test edx, edx
mov edx, dword [esp + 0x24]
cmovns eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], ebp
sar eax, 2
test eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x40], edx
jle 0xbd5e6c
mov eax, dword [esp + 0x44]
mov edx, ebp
sub edx, dword [esp + 0x74]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x64], 0
sub eax, ebp
cmp eax, edx
cmovg eax, edx
mov edx, dword [esp + 0x24]
sub edx, dword [esp + 0x48]
lea ecx, [edi + ebp*8]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
cmp eax, edx
cmovg eax, edx
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x24]
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0xbc], ecx
cmp eax, edx
cmovle edx, eax
mov ecx, ebp
mov dword [esp + 0xb8], edi
mov edi, ebp
add ecx, 2
mov dword [esp + 0x98], edx
sub edi, 2
mov edx, 1
mov ebp, edx
mov edx, ebx
mov dword [esp + 0x50], 0
mov dword [esp + 0x3c], 4
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edi
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x98]
cmp dword [esp + 0x3c], ecx
jle 0xbd7781
xor esi, esi
mov dword [esp + 0x68], edx
jmp 0xbd5d6c
add esi, 1
cmp esi, 0x10
je 0xbd5e11
mov ebx, dword [esi*8 + 0x12718e0]
mov edi, dword [esi*8 + 0x12718e4]
imul ebx, ebp
add ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x30]
jg 0xbd5d60
cmp ebx, dword [esp + 0x48]
jl 0xbd5d60
imul edi, ebp
add edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x44]
jg 0xbd5d60
cmp edi, dword [esp + 0x74]
jl 0xbd5d60
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov eax, dword [edx + 0x38]
mov dword [esp + 4], 0x10
mov dword [esp + 0xc], eax
imul eax, edi
add eax, ebx
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x28]
mov edx, dword [esp + 0x160]
mov dword [esp], eax
call dword [edx + ecx*4 + 4]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
movsx ecx, word [eax + ebx*8]
movsx eax, word [edx + edi*8]
add eax, ecx
add eax, dword [esp + 0x5c]
cmp dword [esp + 0x34], eax
jle 0xbd5d60
add esi, 1
cmp esi, 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], ebx
jne 0xbd5d6c
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
add ecx, 2
mov dword [esp + 0x5c], ecx
lea ebx, [esi - 3]
mov eax, dword [esp + 0x5c]
add ebp, 1
add dword [esp + 0x3c], 4
cmp ebp, dword [esp + 0x94]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x50], eax
jle 0xbd5d41
mov esi, dword [esp + 0x34]
mov ebx, edx
jmp 0xbd5e6c
mov edi, dword [esp + 0x80]
lea ebp, [esp + 0x11c]
mov dword [esp + 0x54], ebp
add edi, 0x27d84
mov dword [esp + 0x7c], edi
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x80]
lea ecx, [edx + edx]
imul eax, edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x10], edx
add ebp, 0x27d7c
mov dword [esp + 0x50], ebp
add eax, edi
mov edi, dword [esp + 0x54]
add eax, dword [esp + 0x58]
lea edx, [eax + ecx + 1]
mov dword [esp + 0xc], edx
lea edx, [eax + ecx - 1]
sub eax, 2
mov dword [esp + 0x14], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
shl edi, 2
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x2c]
shl edi, 3
add ebp, edi
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
movsx edx, word [ebp + edi*8 - 0x10]
sub edi, 1
mov dword [esp + 0x28], edi
shl edi, 2
movsx eax, word [ecx]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x28]
add eax, edx
shl edi, 3
add ebp, edi
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x2c]
add dword [esp + 0x11c], eax
mov ecx, dword [esp + 0x30]
movsx eax, word [ebp + edi*8 + 0x10]
mov ebp, dword [esp + 0x40]
movsx edx, word [ecx]
add ebp, 1
lea edi, [ebp*4]
add edx, eax
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x38]
add dword [esp + 0x120], edx
lea edx, [ebp*8]
mov dword [esp + 0x64], edx
add edi, edx
movsx edx, word [edi]
mov dword [esp + 0x3c], edi
lea edi, [esp + 0x128]
add eax, edx
mov edx, dword [ebx + 0x38]
add dword [esp + 0x124], eax
mov eax, dword [esp + 0x2c]
mov ecx, edx
neg ecx
imul eax, edx
add ecx, ecx
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
lea edx, [eax + ecx - 1]
mov dword [esp + 0xc], edx
lea edx, [eax + ecx + 1]
add eax, 2
mov dword [esp + 8], edx
mov edx, dword [esp + 0x160]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call dword [edx + eax*4 + 0x10]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
movsx edx, word [eax + edi*8 + 0x10]
movsx eax, word [ecx]
mov ecx, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x2c]
add eax, dword [esp + 0x128]
movsx edi, word [ecx + edx*8 - 0x10]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x128], eax
movsx ecx, word [edx]
mov edx, dword [esp + 0x30]
add ecx, edi
movsx edx, word [edx]
add ecx, dword [esp + 0x12c]
add edi, edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x12c], ecx
add edi, edx
mov edx, 0xfffffffe
mov dword [esp + 0x24], edi
mov dword [esp + 0x130], edi
mov edi, dword [esp + 0x11c]
cmp esi, edi
jle 0xbd604a
mov esi, edi
xor edx, edx
mov edi, dword [esp + 0x120]
cmp esi, edi
jle 0xbd605c
mov esi, edi
mov edx, 1
mov edi, dword [esp + 0x124]
cmp esi, edi
jle 0xbd606e
mov esi, edi
mov edx, 2
cmp esi, eax
jle 0xbd6079
mov esi, eax
mov edx, 3
cmp esi, ecx
jle 0xbd6084
mov esi, ecx
mov edx, 4
cmp esi, dword [esp + 0x24]
jg 0xbd60f6
cmp edx, 0xfffffffe
jne 0xbd697d
mov dword [esp + 0x24], esi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x40], ebp
jmp 0xbd636f
mov ebp, edx
mov edi, dword [edx + 0x3a560]
mov edx, dword [edx + 0x3a558]
cmp eax, edx
jl 0xbd60c8
mov ebp, dword [esp + 0x160]
cmp edi, eax
mov edx, eax
cmovle edx, edi
add edx, edx
mov edi, esi
sub edi, edx
mov edx, dword [ebp + 0x3a55c]
mov dword [esp + 0x38], edi
mov edi, dword [ebp + 0x3a564]
cmp ecx, edx
jl 0xbd60e9
cmp edi, ecx
mov edx, ecx
cmovle edx, edi
add edx, edx
sub esi, edx
mov dword [esp + 0x4c], esi
jmp 0xbd4a07
mov eax, 6
mov edx, 5
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
add edi, dword [eax*8 + 0x1271820]
add esi, dword [eax*8 + 0x1271824]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], 1
shr eax, 0x1f
add eax, dword [esp + 0x6c]
sar eax, 1
mov dword [esp + 0x6c], eax
lea eax, [edx + 1]
cmp dword [esp + 0x6c], 1
jle 0xbd6ddd
mov dword [esp + 0x5c], ebx
jmp 0xbd616b
mov eax, dword [esp + 0x2c]
add dword [esp + 0x48], 1
mov edx, dword [esp + 0x6c]
add eax, 1
add edi, dword [eax*8 + 0x1271820]
add esi, dword [eax*8 + 0x1271824]
cmp dword [esp + 0x48], edx
je 0xbd6dd9
mov edx, dword [esp + 0x5c]
mov ebp, dword [eax*4 + 0x1271860]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x60], edi
mov eax, dword [edx + 0x38]
lea ecx, [ebp + 2]
mov edx, eax
imul edx, esi
mov dword [esp + 0x10], eax
add edx, edi
add ebx, edx
mov edx, dword [ecx*8 + 0x1271820]
mov ecx, dword [ecx*8 + 0x1271824]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
lea ecx, [ebp + 1]
mov edx, dword [ecx*8 + 0x1271820]
mov dword [esp + 0x40], ecx
mov ecx, dword [ecx*8 + 0x1271824]
mov dword [esp + 0x30], edx
mov edx, dword [ebp*8 + 0x1271820]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp*8 + 0x1271824]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x5c]
imul ecx, eax
add ecx, dword [esp + 0x2c]
add ecx, ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x34]
imul ecx, eax
imul eax, dword [esp + 0x44]
add ecx, dword [esp + 0x30]
add eax, dword [esp + 0x3c]
add ecx, ebx
add eax, ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [edx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ecx*4 + 0x10]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add eax, edi
movsx ebx, word [edx + eax*8]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
add edx, esi
movsx ecx, word [eax + edx*8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add ecx, ebx
add eax, edi
movsx ebx, word [edx + eax*8]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
add ecx, dword [esp + 0x11c]
add eax, esi
movsx eax, word [edx + eax*8]
mov dword [esp + 0x11c], ecx
lea edx, [ebx + eax]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
add edx, dword [esp + 0x120]
add ebx, edi
movsx ebx, word [eax + ebx*8]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x120], edx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x28]
add ebx, esi
movsx eax, word [eax + ebx*8]
mov dword [esp + 0x28], eax
add eax, dword [esp + 0x2c]
add eax, dword [esp + 0x124]
cmp dword [esp + 0x24], ecx
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x124], eax
jle 0xbd62d4
lea ebx, [ebp - 1]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], edx
jle 0xbd62e2
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], edx
cmp dword [esp + 0x24], eax
jle 0xbd62f4
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ebp
cmp dword [esp + 0x2c], 0xfffffffe
jne 0xbd6143
lea eax, [edi - 1]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x28]
shl eax, 2
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x94], eax
lea eax, [esi*4]
mov dword [esp + 0x84], eax
shl edx, 3
add ebp, edx
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x48], edx
lea edx, [esi*8]
mov dword [esp + 0x44], edx
add ebp, edx
lea eax, [edi + 1]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x40]
shl eax, 2
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x34], eax
shl edx, 3
add ebp, edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x3c], ebp
mov edx, dword [ebx + 0x38]
mov eax, esi
mov ebp, dword [esp + 0x54]
imul eax, edx
add eax, dword [esp + 0x60]
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
lea ecx, [eax - 1]
mov dword [esp + 0xc], ecx
lea ecx, [eax + edx]
sub eax, edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov ebp, dword [esp + 0x38]
lea edx, [edi*4]
lea eax, [esi - 1]
mov dword [esp + 0x6c], eax
lea ecx, [edi*8]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x6c]
shl eax, 2
mov dword [esp + 0x70], ecx
movsx ecx, word [ebp + edi*8]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x11c]
shl edx, 3
mov dword [esp + 0x78], edx
add ebp, edx
mov dword [esp + 0x88], ebp
movsx ebp, word [ebp]
lea edx, [esi + 1]
mov dword [esp + 0x2c], edx
shl edx, 2
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x5c]
add ebp, ecx
add ebp, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x11c], ebp
mov ebp, dword [esp + 0x2c]
shl ebp, 3
add eax, ebp
mov dword [esp + 0x9c], ebp
movsx ebp, word [edx]
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x30]
movsx eax, word [eax]
add ecx, eax
movsx eax, word [edx]
add ecx, dword [esp + 0x120]
lea edx, [eax + ebp]
mov eax, dword [esp + 0x3c]
add edx, dword [esp + 0x124]
mov dword [esp + 0x120], ecx
movsx eax, word [eax]
mov dword [esp + 0x124], edx
mov dword [esp + 0x74], eax
add eax, ebp
add eax, dword [esp + 0x128]
mov dword [esp + 0x128], eax
mov ebp, dword [esp + 0xa4]
cmp dword [esp + 0x24], ebp
jle 0xbd6b0f
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x5c], ebp
cmp dword [esp + 0x24], ecx
jle 0xbd64f8
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x74], ebp
cmp dword [esp + 0x24], edx
jle 0xbd6533
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x24], edx
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x24], eax
jle 0xbd656b
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x80], ebp
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x5c], esi
mov edx, dword [ebx + 0x38]
mov ebp, dword [esp + 0x54]
imul esi, edx
add esi, dword [esp + 0x60]
add esi, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
lea eax, [esi + edx + 1]
mov dword [esp + 0x10], eax
mov eax, esi
sub eax, edx
add eax, 1
mov dword [esp + 0xc], eax
lea eax, [esi + edx - 1]
not edx
add esi, edx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + esi*4 + 0xc]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x98]
movsx ecx, word [edx]
movsx ebp, word [esi]
movsx eax, word [eax]
lea edx, [ecx + ebp]
mov dword [esp + 0x30], eax
add ecx, eax
mov eax, dword [esp + 0x3c]
add edx, dword [esp + 0x11c]
add ecx, dword [esp + 0x120]
movsx esi, word [eax]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], ecx
add ebp, esi
add eax, esi
mov esi, dword [esp + 0x128]
add ebp, dword [esp + 0x124]
add esi, eax
cmp dword [esp + 0x24], edx
mov dword [esp + 0x124], ebp
mov dword [esp + 0x128], esi
jle 0xbd6669
mov edi, dword [esp + 0x78]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x24], ecx
jle 0xbd66a8
mov edi, dword [esp + 0x9c]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x24], ebp
jle 0xbd66e4
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x24], esi
jg 0xbd4ccb
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x40], edi
movsx edx, word [ebp + esi]
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x74]
movsx eax, word [esi + ecx]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x24]
add eax, edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
jmp 0xbd4ccb
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x48]
cmovl eax, dword [esp + 0x48]
mov edx, dword [esp + 0x80]
mov edi, dword [ebx + 0x38]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x74]
cmovl eax, dword [esp + 0x74]
mov ecx, dword [edx*8 + 0x1271964]
mov ebp, dword [edx*8 + 0x1271960]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x30]
cmovg eax, dword [esp + 0x30]
mov dword [esp + 0xc], 0x10
mov edx, dword [esp + 0x60]
mov dword [esp + 8], 0x1a873e0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x44]
cmovg eax, dword [esp + 0x44]
imul ecx, edi
mov dword [esp + 4], 0x10
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x160]
mov dword [esp], eax
call dword [ecx + edx*4 + 4]
mov ecx, dword [esp + 0x70]
mov edx, edi
cmp dword [esp + 0x34], ecx
not edx
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x34]
lea edx, [eax + edx*2]
jg 0xbd4c9b
mov eax, dword [esp + 0x24]
lea ecx, [edi + edi]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x6c], ebx
add eax, ebp
add ebp, ebp
add eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x24], esi
imul eax, edi
add eax, dword [esp + 0x5c]
add ebp, ebp
mov dword [esp + 0x48], ebp
lea eax, [edx + eax*2]
mov dword [esp + 0x7c], eax
lea esi, [esi]
mov ebp, dword [esp + 0x30]
cmp dword [esp + 0x5c], ebp
jg 0xbd693d
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x5c]
lea edx, [ebx + edx*8]
xor ebx, ebx
movsx ecx, word [edx]
mov dword [esp + 0x50], edx
mov dword [esp + 0x28], ecx
nop
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
lea ebp, [eax + edi*8]
movsx eax, word [ebp]
add eax, dword [esp + 0x28]
sub ecx, eax
movzx eax, word [esi + edx]
mov edx, dword [esp + 0x48]
add ax, word [esi]
sub ax, word [esi + edx]
mov edx, dword [esp + 0x44]
sub ax, word [esi + edx]
movzx eax, ax
sub eax, dword [esp + 0x3c]
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0xbd68b7
cmp ebx, 3
je 0xbd6990
mov dword [esp + ebx*4 + 0x134], edi
add ebx, 1
add edi, 1
add esi, 2
cmp dword [esp + 0x30], edi
jge 0xbd6860
test ebx, ebx
je 0xbd693d
mov ebp, dword [esp + 0x6c]
xor esi, esi
mov dword [esp + 0x28], ebx
mov eax, dword [ebp + 0x38]
mov edi, dword [esp + esi*4 + 0x134]
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov edx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x34]
add eax, edi
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
call dword [edx + ebx*4 + 4]
mov ebx, dword [esp + 0x38]
movsx ecx, word [ebx + edi*8]
mov ebx, dword [esp + 0x50]
movsx edx, word [ebx]
add edx, ecx
add edx, eax
cmp dword [esp + 0x24], edx
jle 0xbd6934
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], edx
add esi, 1
cmp esi, dword [esp + 0x28]
jne 0xbd68d1
add dword [esp + 0x34], 1
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x34]
add dword [esp + 0x7c], ecx
cmp dword [esp + 0x70], ebx
jge 0xbd6830
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x6c]
jmp 0xbd4c9b
mov edi, dword [esp + 0x24]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x40], edi
jmp 0xbd4e6a
lea eax, [edx + 1]
mov dword [esp + 0x24], esi
jmp 0xbd6100
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x13c]
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x134]
imul eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x18], ecx
lea edx, [edi + eax]
add edx, dword [esp + 0x58]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x64]
add edx, eax
add edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x74]
add edx, eax
add eax, ebx
mov ebx, dword [esp + 0x80]
add edx, dword [esp + 0x58]
add eax, dword [esp + 0x58]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [edx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebx*4 + 0x9f61c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x134]
movsx edx, word [edx]
movsx eax, word [ebx + eax*8]
mov ebx, edx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x38]
add ebx, eax
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x28]
add ebx, dword [esp + 0x11c]
movsx eax, word [edx + eax*8]
mov dword [esp + 0x11c], ebx
add ecx, eax
mov eax, dword [esp + 0x13c]
add ecx, dword [esp + 0x120]
movsx eax, word [edx + eax*8]
movsx edx, word [ebp]
add eax, dword [esp + 0x28]
add edx, dword [esp + 0x28]
add eax, dword [esp + 0x124]
add edx, dword [esp + 0x128]
cmp dword [esp + 0x24], ebx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], edx
jle 0xbd6aba
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x24], ecx
jle 0xbd6ad4
mov dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x24], eax
jle 0xbd6aee
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x40], eax
xor ebx, ebx
cmp dword [esp + 0x24], edx
jle 0xbd68b7
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], edx
jmp 0xbd68b7
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x74], ebp
jmp 0xbd64d0
test eax, eax
jne 0xbd4c9b
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0xbd4c9b
mov ebp, dword [esp + 0x80]
lea edi, [esp + 0x11c]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x5c], 0
add ebp, 0x27d84
mov dword [esp + 0x7c], ebp
jmp 0xbd6c2a
mov esi, dword [esp + 0x88]
cmp esi, dword [esp + 0x2c]
jle 0xbd6b9f
mov esi, dword [esp + 0x84]
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x48], ebp
cmp esi, ecx
jle 0xbd6dd0
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x28], esi
mov esi, ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x3c], eax
mov eax, ebx
cmp esi, edx
jg 0xbd6dc3
cmp eax, ebx
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
sete dl
add ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x34], ebx
mov ebx, eax
cmp dword [esp + 0x24], edi
je 0xbd6e2b
add dword [esp + 0x5c], 1
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x5c], edi
je 0xbd6e53
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x54]
mov eax, dword [edx + 0x38]
mov edx, ebx
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x7c]
imul edx, eax
mov dword [esp + 0x14], eax
add edx, edi
add edx, dword [esp + 0x58]
lea ecx, [edx + 1]
mov dword [esp + 0x10], ecx
lea ecx, [edx - 1]
mov dword [esp + 0xc], ecx
lea ecx, [edx + eax]
sub edx, eax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov eax, dword [edx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov ebp, dword [esp + 0x38]
lea edx, [edi*4]
lea eax, [ebx - 1]
mov dword [esp + 0x3c], edx
lea ecx, [eax*8]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x11c]
movsx ebp, word [ebp + edx*2]
lea edx, [eax*4]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ebp
movsx ebp, word [edx + eax*8]
add ebp, dword [esp + 0x28]
add ebp, ecx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x11c], ebp
lea ebp, [ebx + 1]
mov dword [esp + 0x40], ebp
mov edx, dword [esp + 0x40]
shl ebp, 2
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x78], ebp
shl edx, 3
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x4c]
movsx ebp, word [edx + ecx*8]
mov ecx, dword [esp + 0x120]
add ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
add ebp, ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x120], ebp
lea ebp, [edi - 1]
mov dword [esp + 0x30], ebp
shl ebp, 2
movsx edx, word [edx + ebp*2]
mov dword [esp + 0x80], ebp
lea ebp, [ebx*4]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x68], edx
lea edx, [ebx*8]
mov dword [esp + 0x44], edx
add ebp, edx
movsx edx, word [ebp]
mov dword [esp + 0x64], ebp
lea ebp, [edi + 1]
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x24], ebp
shl ebp, 2
mov dword [esp + 0x34], ebp
add ecx, edx
mov edx, dword [esp + 0x38]
add ecx, dword [esp + 0x124]
movsx edx, word [edx + ebp*2]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x94]
add edx, dword [esp + 0x74]
add edx, dword [esp + 0x128]
cmp dword [esp + 0x88], esi
mov dword [esp + 0x128], edx
jl 0xbd6b77
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, ebx
mov dword [esp + 0x60], ebp
jmp 0xbd6b7e
mov esi, edx
mov edx, 1
jmp 0xbd6c09
mov dword [esp + 0x30], edi
jmp 0xbd6bce
mov ebx, dword [esp + 0x5c]
lea ecx, [edi - 1]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
mov ebp, dword [esp + 0x28]
shl ecx, 2
mov dword [esp + 0x94], ecx
lea edx, [esi*4]
lea ecx, [esi*8]
mov dword [esp + 0x60], edi
shl ebp, 3
add eax, ebp
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x44], ecx
add ebp, ecx
jmp 0xbd6348
test dl, dl
je 0xbd6c13
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x70]
movsx eax, word [edx]
add eax, dword [esp + 0x74]
mov dword [esp + 0x40], ecx
jmp 0xbd4ccb
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x70]
movsx eax, word [ebp]
add eax, dword [esp + 0x74]
mov dword [esp + 0x40], edx
jmp 0xbd4ccb
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0
jmp 0xbd4f0f
mov edx, dword [esp + 0x58]
mov eax, dword [ebx + 0x38]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
add edx, 1
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x58]
sub ebp, eax
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 4], ebp
sub edx, 1
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], eax
add edx, eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
movsx eax, word [ebp - 8]
movsx ecx, word [edi]
mov edi, dword [esp + 0x38]
lea edx, [ecx + eax]
movsx eax, word [ebp + 8]
movsx ebp, word [ebp]
add edx, dword [esp + 0x11c]
add ecx, eax
movsx eax, word [edi - 8]
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edx
lea edi, [eax + ebp]
mov eax, dword [esp + 0x38]
add edi, dword [esp + 0x124]
mov dword [esp + 0x120], ecx
movsx eax, word [eax + 8]
mov dword [esp + 0x124], edi
mov dword [esp + 0x24], eax
add eax, ebp
add eax, dword [esp + 0x128]
cmp dword [esp + 0x28], edx
mov dword [esp + 0x128], eax
jle 0xbd6f5e
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x40], 0
cmp dword [esp + 0x28], ecx
jle 0xbd6f78
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x40], 0
cmp dword [esp + 0x28], edi
jle 0xbd6f92
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0xffffffff
cmp dword [esp + 0x28], eax
jle 0xbd4ed1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 1
jmp 0xbd4ed1
mov esi, dword [esp + 0x28]
jmp 0xbd5e6c
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
imul eax, edx
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], ebp
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
lea ecx, [eax - 1]
mov dword [esp + 0xc], ecx
lea ecx, [eax + edx]
sub eax, edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
movsx ecx, word [ebp + edi*8]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
sub edi, 1
movsx eax, word [ebp + edi*8]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x2c]
lea edx, [ecx + eax]
add edi, 1
movsx eax, word [ebp + edi*8]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x40]
add edx, dword [esp + 0x11c]
add ecx, eax
sub edi, 1
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edx
movsx edi, word [ebp + edi*8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x38]
movsx ebp, word [edi + eax*8]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
add edi, ebp
mov ebp, dword [esp + 0x40]
add edi, dword [esp + 0x124]
add ebp, 1
movsx eax, word [eax + ebp*8]
mov dword [esp + 0x124], edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x64], eax
add eax, dword [esp + 0x34]
add eax, dword [esp + 0x128]
cmp dword [esp + 0x28], edx
mov dword [esp + 0x128], eax
jg 0xbd70d1
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x5c], ebp
cmp edx, ecx
jle 0xbd70df
mov edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x5c], ecx
cmp edx, edi
jle 0xbd70f5
mov edx, edi
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x5c], edi
cmp edx, eax
jle 0xbd710b
mov edi, dword [esp + 0x2c]
mov edx, eax
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x40], ebp
cmp dword [esp + 0x28], edx
je 0xbd8cca
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
sub eax, dword [esp + 0x40]
sub ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x40]
cmp eax, ecx
cmovle ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x5c]
sub eax, dword [esp + 0x5c]
sub ecx, dword [esp + 0x74]
mov dword [esp + 0x2c], esi
mov esi, edx
mov dword [esp + 0x64], edi
cmp eax, ecx
cmovle ecx, eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], 1
jmp 0xbd4f8f
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
imul eax, ecx
add eax, dword [esp + 0x40]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x7c]
add edx, eax
lea eax, [edx - 2]
mov dword [esp + 0x10], eax
mov eax, edx
sub eax, ecx
add eax, 1
mov dword [esp + 0xc], eax
mov eax, ecx
not eax
add eax, edx
mov dword [esp + 8], eax
mov eax, ecx
neg eax
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
shl ecx, 3
add ebp, ecx
sub eax, 2
shl edx, 2
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa8], eax
mov ebp, dword [esp + 0xa8]
shl eax, 2
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x50], eax
shl ebp, 3
add edx, ebp
mov dword [esp + 0xe4], edx
movsx edx, word [ecx]
mov ecx, dword [esp + 0xe4]
movsx eax, word [ecx]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x40]
add ecx, dword [esp + 0x11c]
sub eax, 1
mov dword [esp + 0x84], eax
shl eax, 2
mov edx, dword [esp + 0x84]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x11c], ecx
shl edx, 3
add eax, edx
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x4c]
sub edx, 1
mov dword [esp + 0x94], edx
shl edx, 2
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x94]
shl edx, 3
add eax, edx
mov dword [esp + 0x78], edx
movsx edx, word [eax]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xb4]
movsx eax, word [eax]
add eax, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x120]
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x88], eax
shl eax, 2
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x88]
shl eax, 3
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0xc8]
mov dword [esp + 0xbc], eax
movsx eax, word [eax]
add edx, eax
mov eax, dword [esp + 0x124]
add edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], edx
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x40]
sub edx, 2
mov dword [esp + 0xa4], edx
shl edx, 2
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xa4]
shl edx, 3
add eax, edx
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x2c]
shl edx, 2
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x4c]
shl eax, 3
mov dword [esp + 0xb8], eax
add edx, eax
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0xd0]
movsx edx, word [edx]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x98]
movsx eax, word [edx]
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x128]
mov dword [esp + 0x128], eax
cmp ecx, dword [esp + 0x28]
jge 0xbd82e2
mov edx, dword [esp + 0xa8]
mov edi, ecx
mov dword [esp + 0x5c], edx
cmp edi, dword [esp + 0x64]
jle 0xbd82bf
mov edx, dword [esp + 0xe8]
mov edi, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x64], edx
cmp edi, dword [esp + 0x70]
jle 0xbd7456
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0xc8]
mov ecx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
cmp edi, eax
jle 0xbd7497
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov edi, dword [esp + 0xcc]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x50], edi
mov edi, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], edx
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
imul eax, edx
add eax, dword [esp + 0x40]
add ecx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x10], eax
lea eax, [ecx + edx + 1]
mov dword [esp + 0xc], eax
lea eax, [ecx + edx - 1]
add ecx, 2
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edx*4 + 0xc]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
add edx, 2
mov dword [esp + 0x70], edx
shl edx, 2
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x70]
shl edx, 3
add ecx, edx
mov dword [esp + 0xf4], edx
movsx edx, word [ecx]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x98]
movsx eax, word [ecx]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x2c]
add ecx, dword [esp + 0x11c]
add eax, 1
mov dword [esp + 0x9c], eax
shl eax, 2
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x11c], ecx
shl edx, 3
add eax, edx
mov dword [esp + 0xd8], edx
movsx edx, word [eax]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xb4]
movsx eax, word [eax]
add eax, edx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x120]
add dword [esp + 0xac], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xbc]
movsx eax, word [eax]
add edx, eax
mov eax, dword [esp + 0x124]
add edx, eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x2c]
add edx, 2
mov dword [esp + 0x78], edx
shl edx, 2
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x78]
shl edx, 3
add eax, edx
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x104], eax
movsx eax, word [eax]
movsx edx, word [edx]
add eax, edx
add eax, dword [esp + 0x128]
cmp edi, ecx
mov dword [esp + 0x128], eax
jle 0xbd764e
mov edx, dword [esp + 0xcc]
mov edi, dword [esp + 0xf4]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x108]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x34], edi
mov edi, ecx
mov dword [esp + 0x64], edx
cmp edi, dword [esp + 0xac]
jle 0xbd769c
mov edx, dword [esp + 0xe8]
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x64], edx
cmp edi, dword [esp + 0xb0]
jle 0xbd76ea
mov edx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
cmp edi, eax
jle 0xbd7728
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0x10c]
mov ebp, dword [esp + 0x100]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x50], edi
mov edi, eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], edx
cmp esi, edi
je 0xbd8c88
cmp dword [esp + 0x28], edi
je 0xbd8301
mov eax, dword [esp + 0x30]
mov esi, edi
mov edx, dword [esp + 0x40]
sub eax, dword [esp + 0x40]
sub edx, dword [esp + 0x48]
mov dword [esp + 0x94], 3
cmp eax, edx
cmovle edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
sub eax, dword [esp + 0x2c]
sub edx, dword [esp + 0x74]
cmp eax, edx
cmovle edx, eax
mov dword [esp + 0x98], edx
jmp 0xbd4f8f
mov ecx, dword [esp + 0x50]
lea esi, [ebp + ebp]
mov edi, dword [esp + 0x50]
mov eax, dword [edx + 0x38]
mov ebx, dword [esp + 0x28]
neg ecx
add edi, 2
lea ecx, [ecx + ecx - 4]
mov dword [esp + 0xc0], ecx
mov ecx, edi
neg ecx
add ecx, ecx
mov dword [esp + 0x78], ecx
mov ecx, ebp
neg ecx
imul ebx, eax
mov dword [esp + 0xa4], ecx
imul ecx, eax
add ebx, dword [esp + 0x24]
add ecx, dword [esp + 0x78]
add ebx, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x54]
add ecx, ebx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x70], esi
mov dword [esp + 0x18], edi
add ecx, ebx
mov dword [esp + 0xc], ecx
lea ecx, [eax - 4]
imul ecx, ebp
imul eax, esi
add eax, dword [esp + 0x78]
add ecx, ebx
add eax, ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebx*4 + 0xc]
mov ebx, dword [esp + 0x24]
lea ecx, [ebp*4]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x4c]
sub ebx, ecx
mov ecx, dword [esp + 0xc4]
lea esi, [esi + ebx*8]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x4c]
add ecx, dword [esp + 0x50]
movsx edi, word [esi]
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x28]
lea ebx, [ebx + ecx*8]
mov dword [esp + 0xb4], ecx
movsx ecx, word [ebx]
mov dword [esp + 0xcc], edi
add esi, ebp
mov dword [esp + 0xac], esi
add ecx, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x9c], ebx
add ecx, dword [esp + 0x11c]
lea edi, [edi + esi*8]
movsx esi, word [edi]
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0xbc]
add esi, dword [esp + 0xcc]
add esi, dword [esp + 0x120]
mov dword [esp + 0x11c], ecx
movsx ebx, word [edi]
mov edi, dword [esp + 0x28]
add ebx, dword [esp + 0xcc]
add ebx, dword [esp + 0x124]
mov dword [esp + 0x120], esi
sub edi, ebp
lea eax, [eax + edi*8]
mov dword [esp + 0xa8], eax
movsx eax, word [eax]
add eax, dword [esp + 0xcc]
add eax, dword [esp + 0x128]
mov dword [esp + 0x124], ebx
mov dword [esp + 0xb0], edi
mov dword [esp + 0x128], eax
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x34], ecx
jle 0xbd792d
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x34], esi
jle 0xbd794d
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], esi
cmp dword [esp + 0x34], ebx
jle 0xbd796a
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x34], eax
jle 0xbd798a
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], esi
mov ebx, dword [edx + 0x38]
mov ecx, 0xfffffffe
mov eax, dword [esp + 0x28]
sub ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x54]
imul ecx, ebx
imul eax, ebx
imul ebx, dword [esp + 0xa4]
add eax, dword [esp + 0x24]
add ebx, dword [esp + 0x3c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], edi
add ebx, eax
add esi, eax
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
add ebx, ecx
add ecx, dword [esp + 0x78]
add ebx, eax
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x7c]
add ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [edx + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebx*4 + 0xc]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc8]
sub ecx, dword [esp + 0x50]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x20]
movsx esi, word [ebx + ecx*8]
mov dword [esp + 0xa4], ecx
mov ebx, dword [esp + 0x24]
movsx ecx, word [edi]
mov edi, dword [esp + 0x38]
add ebx, dword [esp + 0x68]
add ecx, esi
lea edi, [edi + ebx*8]
mov dword [esp + 0x88], ebx
movsx ebx, word [eax]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x78], edi
movsx edi, word [edi]
add ecx, dword [esp + 0x11c]
movsx eax, word [eax]
add esi, edi
add ebx, edi
add esi, dword [esp + 0x120]
add ebx, dword [esp + 0x124]
mov dword [esp + 0xa8], eax
add eax, edi
add eax, dword [esp + 0x128]
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], eax
jle 0xbd7abf
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x34], esi
jle 0xbd7adf
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], esi
cmp dword [esp + 0x34], ebx
jle 0xbd7aff
mov edi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x34], eax
jle 0xbd7b1c
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], esi
mov eax, dword [edx + 0x38]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x84], 3
mov esi, dword [esp + 0x54]
imul ebx, eax
imul ecx, eax
add ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x58]
sub dword [esp + 0x84], edi
mov edi, dword [esp + 0x7c]
add ecx, ebx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
imul ecx, eax
add ecx, dword [esp + 0x70]
add ecx, ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
imul ecx, eax
add eax, 4
imul eax, ebp
add ecx, dword [esp + 0x3c]
add eax, ebx
add ecx, ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + edi*4 + 0xc]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0xa0]
movsx eax, word [ecx]
mov ecx, dword [esp + 0x9c]
movsx esi, word [ebx]
mov ebx, dword [esp + 0x50]
movsx edi, word [ecx]
mov ecx, dword [esp + 0x24]
add esi, eax
add esi, dword [esp + 0x11c]
add edi, eax
mov eax, dword [esp + 0x38]
lea ebx, [ecx + ebx + 2]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xa8], ebx
add edi, dword [esp + 0x120]
lea eax, [eax + ebx*8]
mov ebx, dword [esp + 0x64]
add ecx, 3
mov dword [esp + 0x9c], eax
mov dword [esp + 0x11c], esi
sub ecx, ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x120], edi
lea ebx, [ebx + ecx*8]
mov dword [esp + 0xa0], ebx
mov ecx, dword [esp + 0xa0]
movsx ebx, word [eax]
movsx eax, word [ecx]
mov ecx, dword [esp + 0xb8]
add ebx, eax
mov eax, dword [esp + 0x68]
movsx ecx, word [ecx]
add eax, dword [esp + 0x28]
add ebx, dword [esp + 0x124]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x124], ebx
movsx ecx, word [ecx + eax*8]
mov eax, dword [esp + 0xb0]
add eax, ecx
add eax, dword [esp + 0x128]
mov dword [esp + 0x128], eax
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x34], esi
jle 0xbd7ca2
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], esi
cmp dword [esp + 0x34], edi
jle 0xbd7cc2
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], edi
cmp dword [esp + 0x34], ebx
jle 0xbd7cdf
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], ebx
cmp dword [esp + 0x34], eax
jle 0xbd7cfc
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], edi
mov ecx, dword [edx + 0x38]
mov esi, 0xfffffffe
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x28]
sub esi, dword [esp + 0x50]
mov eax, ecx
sub ebx, 3
imul eax, ebx
imul edi, ecx
add edi, dword [esp + 0x24]
add edi, dword [esp + 0x58]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x70]
add eax, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc0]
imul eax, ecx
imul ecx, dword [esp + 0x84]
add eax, edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
add ecx, esi
add eax, esi
mov esi, dword [esp + 0x7c]
add eax, edi
add edi, ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + esi*4 + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0xa0]
sub ecx, 2
sub ecx, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x70], ecx
movsx edi, word [esi + ecx*8]
movsx esi, word [eax]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x28]
add esi, edi
add esi, dword [esp + 0x11c]
lea ecx, [eax + ecx - 3]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x11c], esi
movsx eax, word [eax + ecx*8]
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x68]
mov dword [esp + 0x50], eax
add edi, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x68]
add edi, dword [esp + 0x120]
movsx ecx, word [ecx]
mov dword [esp + 0x120], edi
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x4c]
movsx eax, word [ecx + eax*8]
mov ecx, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x9c]
add ecx, dword [esp + 0x124]
movsx eax, word [eax]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x84], eax
add eax, dword [esp + 0x50]
add eax, dword [esp + 0x128]
mov dword [esp + 0x128], eax
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x34], esi
jle 0xbd7e6f
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x40], esi
cmp dword [esp + 0x34], edi
jle 0xbd7e89
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x34], ecx
jle 0xbd7ea3
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x34], eax
jle 0xbd5e27
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], edi
jmp 0xbd5e27
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
imul eax, edx
add eax, dword [esp + 0x64]
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], edi
mov ecx, eax
sub ecx, edx
add edx, eax
mov dword [esp + 0x10], ecx
lea ecx, [eax - 1]
add eax, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
add edi, 1
lea ebp, [ebp + edi*8]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x4c]
sub ecx, 1
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x94], ecx
lea edi, [ebp + edi*8]
movsx ebp, word [edi]
movsx eax, word [edx]
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x64]
lea edx, [eax + ebp]
mov eax, dword [esp + 0x38]
add edx, dword [esp + 0x11c]
lea edi, [eax + edi*8]
movsx eax, word [edi]
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
add edi, 1
mov dword [esp + 0x84], edi
lea eax, [eax + edi*8]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x40], eax
movsx eax, word [eax]
add edi, eax
mov eax, dword [esp + 0x38]
add edi, dword [esp + 0x120]
lea eax, [eax + ecx*8]
mov dword [esp + 0x34], eax
movsx eax, word [eax]
mov dword [esp + 0x120], edi
lea ecx, [ebp + eax]
mov ebp, dword [esp + 0x5c]
add ecx, dword [esp + 0x124]
sub ebp, 1
mov dword [esp + 0x124], ecx
mov dword [esp + 0x88], ebp
mov eax, dword [esp + 0x4c]
lea eax, [eax + ebp*8]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x3c], eax
movsx eax, word [eax]
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x128]
cmp edx, esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x128], eax
jge 0xbd8018
mov esi, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x24], edx
mov ebp, dword [esp + 0x5c]
cmp esi, edi
mov dword [esp + 0x28], ebp
jle 0xbd8039
mov esi, edi
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], edi
cmp esi, ecx
jle 0xbd8052
mov ebp, dword [esp + 0x5c]
mov esi, ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edx
cmp esi, eax
jle 0xbd5642
mov ecx, dword [esp + 0x88]
mov esi, eax
mov edi, dword [esp + 0x64]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
jmp 0xbd5642
mov ecx, dword [esp + 0x94]
mov ebp, eax
sub ebp, 2
mov dword [esp + 0x88], ebp
cmp ecx, ebp
jge 0xbd5464
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x84], ebx
mov ebx, ecx
lea edi, [ebp + edi*8]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x98], edi
mov edi, 0xfffffffe
sub edi, ecx
add ebp, 2
mov dword [esp + 0x78], ebp
lea esi, [esi]
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x54]
mov eax, dword [edx + 0x38]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x7c]
mov ecx, eax
imul edx, eax
imul ecx, edi
add edx, dword [esp + 0x40]
add edx, dword [esp + 0x58]
mov dword [esp + 0x14], eax
add ecx, edx
mov dword [esp + 0x10], ecx
lea ecx, [ebx + 2]
imul ecx, eax
add ecx, edx
mov dword [esp + 0xc], ecx
lea ecx, [edi + 2]
imul ecx, eax
imul eax, ebx
add ecx, edx
add eax, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [edx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x11c]
add ecx, ebx
mov dword [esp + 0x68], ecx
movsx ecx, word [ebp + ecx*8]
movsx edx, word [edx]
mov dword [esp + 0x24], edx
add ecx, edx
mov edx, dword [esp + 0x78]
add ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x11c], ecx
add edx, edi
mov dword [esp + 0x70], edx
movsx edx, word [ebp + edx*8]
mov ebp, dword [esp + 0x78]
add edx, dword [esp + 0x24]
add edx, dword [esp + 0x120]
add ebp, ebx
movsx ecx, word [eax + ebp*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x120], edx
add eax, ecx
mov ecx, dword [esp + 0x2c]
add eax, dword [esp + 0x124]
add ecx, edi
movsx ebp, word [ebp + ecx*8]
mov dword [esp + 0x124], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xa0], ebp
add ebp, dword [esp + 0x24]
add ebp, dword [esp + 0x128]
cmp dword [esp + 0x9c], esi
mov dword [esp + 0x128], ebp
jge 0xbd81fa
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x64], ecx
cmp esi, edx
jle 0xbd8210
mov esi, edx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], edx
cmp esi, eax
jle 0xbd8226
mov esi, eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], eax
cmp esi, ebp
jle 0xbd823c
mov esi, ebp
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ebp
add ebx, 4
sub edi, 4
cmp ebx, dword [esp + 0x88]
jl 0xbd80c0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x94]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x84]
sub eax, 3
and eax, 0xfffffffc
lea ecx, [edi + eax + 4]
jmp 0xbd5464
mov ebp, dword [esp + 0x80]
mov edi, 0x19
test ebp, ebp
je 0xbd508c
mov edx, dword [esp + 0x168]
mov eax, dword [ebx + 0x40]
mov ebp, dword [esp + 0x168]
sub eax, dword [edx]
mov edx, eax
sar edx, 0x1f
mov edi, edx
xor edi, eax
mov eax, dword [ebx + 0x44]
sub eax, dword [ebp + 4]
sub edi, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add edi, eax
jmp 0xbd508c
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], edx
mov dword [esp + 0x64], ecx
jmp 0xbd7411
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], edx
jmp 0xbd73c8
mov edi, dword [esp + 0x6c]
mov ebp, 3
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
sub eax, dword [esp + 0x40]
sub edx, dword [esp + 0x48]
sar edi, 1
mov esi, dword [esp + 0x28]
or edi, 1
cmp eax, edx
cmovle edx, eax
cmp edi, edx
mov dword [esp + 0x34], edx
jg 0xbd850d
cmp edi, 5
jle 0xbd850d
lea edx, [edi - 6]
mov esi, dword [esp + 0x28]
mov ebp, 0xfffffffb
shr edx, 2
mov eax, edx
neg eax
mov dword [esp + 0xac], edx
lea eax, [eax*4 - 9]
mov edx, 3
mov dword [esp + 0xcc], edi
mov edi, edx
mov dword [esp + 0xc8], eax
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], edx
imul eax, edx
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
lea edx, [eax + ebp]
mov dword [esp + 0x10], edx
mov edx, eax
sub edx, ebp
mov dword [esp + 0xc], edx
mov edx, eax
add eax, edi
sub edx, edi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x160]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
call dword [edx + eax*4 + 0xc]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
movsx edx, word [edx]
add ecx, edi
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x50], edx
movsx edx, word [eax + ecx*8]
mov ecx, dword [esp + 0x11c]
add edx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
add edx, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
sub eax, edi
mov dword [esp + 0x11c], edx
mov dword [esp + 0xb8], eax
movsx edx, word [ecx + eax*8]
mov eax, dword [esp + 0x50]
add eax, edx
mov edx, dword [esp + 0x40]
add eax, dword [esp + 0x120]
sub edx, ebp
movsx ecx, word [ecx + edx*8]
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x124]
add ecx, dword [esp + 0x50]
mov dword [esp + 0x120], eax
add ecx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x40]
add ecx, ebp
movsx edx, word [edx + ecx*8]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x50]
add ecx, edx
add ecx, dword [esp + 0x128]
cmp dword [esp + 0x3c], esi
mov dword [esp + 0x128], ecx
jge 0xbd8496
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x64], edx
cmp esi, eax
jle 0xbd84af
mov esi, eax
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], eax
cmp esi, dword [esp + 0x24]
jle 0xbd84cc
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
cmp esi, ecx
jle 0xbd84e5
mov esi, ecx
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], ecx
add edi, 4
sub ebp, 4
cmp ebp, dword [esp + 0xc8]
jne 0xbd8373
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0xcc]
lea ebp, [edx*4 + 7]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
add ecx, ebp
sub eax, ebp
cmp edi, ebp
mov dword [esp + 0x24], eax
jle 0xbd863b
mov dword [esp + 0x50], edi
mov edi, ebx
mov ebx, ecx
jmp 0xbd8553
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x48], edx
jle 0xbd85c1
add ebp, 2
add ebx, 2
sub dword [esp + 0x24], 2
cmp dword [esp + 0x50], ebp
jle 0xbd8635
cmp dword [esp + 0x30], ebx
jl 0xbd8530
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov edx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x2c]
add eax, ebx
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x28]
mov dword [esp], eax
call dword [edx + ecx*4 + 4]
mov edx, dword [esp + 0x98]
mov ecx, eax
mov eax, dword [esp + 0x38]
movsx eax, word [eax + ebx*8]
mov dword [esp + 0x3c], eax
movsx eax, word [edx]
add eax, dword [esp + 0x3c]
add eax, ecx
cmp eax, esi
jge 0xbd8530
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x5c], ecx
jmp 0xbd8530
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x2c]
add eax, edx
mov edx, dword [esp + 0x160]
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x28]
mov dword [esp], eax
call dword [edx + ecx*4 + 4]
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x38]
movsx edx, word [eax + edx*8]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x98]
movsx eax, word [edx]
add eax, dword [esp + 0x3c]
add eax, ecx
cmp esi, eax
jle 0xbd853e
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov edx, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], edx
jmp 0xbd853e
mov ebx, edi
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
mov ebp, 3
mov edx, dword [esp + 0x2c]
sub eax, dword [esp + 0x2c]
sub edx, dword [esp + 0x74]
cmp eax, edx
cmovle edx, eax
cmp edi, edx
mov dword [esp + 0x98], edx
jg 0xbd8856
cmp edi, 5
jle 0xbd8856
lea edx, [edi - 6]
mov ebp, 0xfffffffb
shr edx, 2
mov eax, edx
neg eax
mov dword [esp + 0xac], edx
lea eax, [eax*4 - 9]
mov edx, 3
mov dword [esp + 0xcc], edi
mov edi, edx
mov dword [esp + 0xc8], eax
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov ecx, eax
imul edx, eax
imul ecx, ebp
add edx, dword [esp + 0x40]
add edx, dword [esp + 0x58]
add ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, ebp
imul ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, edx
sub ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, edi
imul ecx, eax
imul eax, edi
mov dword [esp + 0x24], ecx
mov ecx, edx
sub ecx, dword [esp + 0x24]
add eax, edx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x160]
mov dword [esp + 8], ecx
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
call dword [edx + eax*4 + 0xc]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
movsx edx, word [edx]
add ecx, edi
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x50], edx
movsx edx, word [eax + ecx*8]
mov ecx, dword [esp + 0x11c]
add edx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x3c], edx
sub eax, edi
mov dword [esp + 0x11c], edx
mov dword [esp + 0xb0], eax
movsx edx, word [ecx + eax*8]
mov eax, dword [esp + 0x50]
add eax, edx
mov edx, dword [esp + 0x2c]
add eax, dword [esp + 0x120]
sub edx, ebp
movsx ecx, word [ecx + edx*8]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x124]
add ecx, dword [esp + 0x50]
mov dword [esp + 0x120], eax
add ecx, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x2c]
add ecx, ebp
movsx edx, word [edx + ecx*8]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x50]
add ecx, edx
add ecx, dword [esp + 0x128]
cmp esi, dword [esp + 0x3c]
mov dword [esp + 0x128], ecx
jle 0xbd87df
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x64], edx
cmp esi, eax
jle 0xbd87f8
mov esi, eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], eax
cmp esi, dword [esp + 0x24]
jle 0xbd8815
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
cmp esi, ecx
jle 0xbd882e
mov esi, ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], ecx
add edi, 4
sub ebp, 4
cmp ebp, dword [esp + 0xc8]
jne 0xbd869f
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0xcc]
lea ebp, [edx*4 + 7]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
add ecx, ebp
sub eax, ebp
cmp ebp, edi
mov dword [esp + 0x24], eax
jge 0xbd8985
mov dword [esp + 0x50], edi
mov edi, ebx
mov ebx, ecx
jmp 0xbd889b
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x74], edx
jle 0xbd8909
add ebp, 2
add ebx, 2
sub dword [esp + 0x24], 2
cmp dword [esp + 0x50], ebp
jle 0xbd897f
cmp dword [esp + 0x44], ebx
jl 0xbd8878
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov edx, dword [esp + 0x160]
mov dword [esp + 0xc], eax
imul eax, ebx
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x28]
mov dword [esp], eax
call dword [edx + ecx*4 + 4]
mov edx, dword [esp + 0xa0]
movsx edx, word [edx]
mov ecx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x4c]
movsx eax, word [edx + ebx*8]
add eax, dword [esp + 0x3c]
add eax, ecx
cmp eax, esi
jge 0xbd8878
mov ecx, dword [esp + 0x40]
mov esi, eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], ecx
jmp 0xbd8878
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], 0x10
mov dword [esp + 0xc], eax
imul eax, edx
mov edx, dword [esp + 0x160]
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x28]
mov dword [esp], eax
call dword [edx + ecx*4 + 4]
mov edx, dword [esp + 0xa0]
movsx edx, word [edx]
mov ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x24]
movsx edx, word [eax + edx*8]
mov eax, dword [esp + 0x3c]
add eax, edx
add eax, ecx
cmp esi, eax
jle 0xbd8886
mov esi, eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], eax
jmp 0xbd8886
mov ebx, edi
mov edi, dword [esp + 0x50]
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
mov ebp, ecx
imul eax, ecx
neg ebp
add eax, dword [esp + 0x40]
add ebp, ebp
mov dword [esp + 0x14], ecx
add edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, edx
sub eax, ecx
add eax, 2
mov dword [esp + 0x10], eax
mov eax, edx
sub eax, ecx
sub eax, 2
mov dword [esp + 0xc], eax
lea eax, [edx + ebp + 1]
mov dword [esp + 8], eax
lea eax, [edx + ebp - 1]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov edx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xb4]
movsx ecx, word [edx]
movsx eax, word [ebp]
mov ebp, dword [esp + 0xbc]
lea edx, [eax + ecx]
movsx eax, word [ebp]
mov ebp, dword [esp + 0xec]
add edx, dword [esp + 0x11c]
add ecx, eax
movsx ebp, word [ebp]
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0x120], ecx
movsx eax, word [ebp]
mov ebp, dword [esp + 0x24]
add ebp, eax
mov eax, dword [esp + 0xd4]
add ebp, dword [esp + 0x124]
movsx eax, word [eax]
mov dword [esp + 0x124], ebp
mov dword [esp + 0x3c], eax
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x128]
cmp edx, esi
mov dword [esp + 0x128], eax
jge 0xbd8a91
mov esi, edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x64], edx
cmp esi, ecx
jle 0xbd8aad
mov edx, dword [esp + 0xa8]
mov esi, ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x64], edx
cmp esi, ebp
jle 0xbd8ac9
mov esi, ebp
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], ebp
cmp esi, eax
jle 0xbd8ae2
mov ebp, dword [esp + 0x94]
mov esi, eax
mov edx, dword [esp + 0x70]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x64], edx
mov ebp, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], ebp
imul eax, ebp
add eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
add ecx, eax
lea eax, [ebp + ebp]
lea edx, [ecx + eax + 1]
lea eax, [ecx + eax - 1]
mov dword [esp + 0xc], eax
lea eax, [ecx + ebp + 2]
mov dword [esp + 8], eax
lea eax, [ecx + ebp - 2]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x160]
call dword [eax + ebp*4 + 0xc]
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0xd0]
movsx ecx, word [edx]
movsx eax, word [ebp]
mov ebp, dword [esp + 0xd4]
lea edx, [eax + ecx]
movsx eax, word [ebp]
mov ebp, dword [esp + 0x104]
add edx, dword [esp + 0x11c]
add ecx, eax
movsx ebp, word [ebp]
add ecx, dword [esp + 0x120]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x120], ecx
movsx eax, word [ebp]
mov ebp, dword [esp + 0x24]
add ebp, eax
mov eax, dword [esp + 0xbc]
add ebp, dword [esp + 0x124]
movsx eax, word [eax]
mov dword [esp + 0x124], ebp
mov dword [esp + 0x3c], eax
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x128]
cmp esi, edx
mov dword [esp + 0x128], eax
jle 0xbd8be6
mov esi, edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x64], edx
cmp esi, ecx
jle 0xbd8bff
mov edx, dword [esp + 0x9c]
mov esi, ecx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x64], edx
cmp esi, ebp
jle 0xbd8c18
mov esi, ebp
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], ebp
cmp esi, eax
jle 0xbd8c31
mov ebp, dword [esp + 0x78]
mov esi, eax
mov edx, dword [esp + 0x88]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x64], edx
add edi, 2
cmp dword [esp + 0x28], esi
mov dword [esp + 0x94], edi
jne 0xbd4f8f
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
shl ebp, 2
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x38]
shl edi, 2
mov dword [esp + 0x34], edi
movsx edx, word [ebp + edi*2]
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
movsx eax, word [ebp + edi*2]
mov edi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x64]
add eax, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], ebp
jmp 0xbd4ccb
movzx ecx, byte [esp + 0xdc]
mov eax, 0x1f4
sar eax, cl
cmp esi, eax
jge 0xbd7730
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
movsx edx, word [eax + edi]
mov edi, dword [esp + 0x4c]
movsx eax, word [edi + ebp]
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
add eax, edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x40], edi
jmp 0xbd4ccb
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x2c], ebp
jmp 0xbd4f13