Function at 0x404c60
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x144
push ebx
push ebp
mov ebp, dword [esp + 0x150]
push esi
push edi
mov edi, dword [esp + 0x15c]
lea ebx, [ebp + ebp*4]
mov esi, ecx
shl ebx, 4
mov byte [esp + 0x28], 0x93
mov byte [esp + 0x29], 0x94
lea eax, [ebx + edi]
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0x96
mov byte [esp + 0x20], 0x97
lea ecx, [eax + esi]
mov byte [esp + 0x21], 0x99
mov byte [esp + 0x22], 0xd
mov byte [esp + 0x23], 0x9a
mov al, byte [ecx + 0x191d]
mov byte [esp + 0x1c], 0x9b
cmp al, 0x53
mov byte [esp + 0x1d], 0x9c
mov byte [esp + 0x1e], 0x1a
mov byte [esp + 0x1f], 0x9d
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], ecx
je 0x404f16
cmp al, 0x4d
je 0x404f16
cmp al, 0x4c
je 0x404f16
cmp al, 0x2e
je 0x404f16
test al, al
jl 0x404f16
cmp al, 0x57
jne 0x404ee7
mov al, byte [ecx + 0x1d]
test al, al
ja 0x404e9b
mov ecx, dword [esi + 4]
lea eax, [ebp + 1]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
mov dword [esp + 0x24], eax
add eax, edi
add eax, esi
mov dword [esp + 0x30], eax
mov dl, byte [eax + 0x1d]
test dl, dl
ja 0x404e9b
lea eax, [edi + 1]
cdq
idiv ecx
mov eax, edx
lea edx, [eax + ebx]
cmp byte [edx + esi + 0x1d], 0
ja 0x404e9b
mov edx, dword [esp + 0x24]
add eax, edx
cmp byte [eax + esi + 0x1d], 0
ja 0x404e9b
test ebp, ebp
jne 0x404d62
lea ebp, [ecx - 1]
jmp 0x404d63
dec ebp
test edi, edi
lea eax, [ecx - 1]
je 0x404d6d
lea eax, [edi - 1]
lea ebp, [ebp + ebp*4]
shl ebp, 4
add ebp, eax
test edi, edi
mov al, byte [esi + ebp + 0x191d]
mov byte [esp + 0x13], al
lea eax, [ecx - 1]
je 0x404d8b
lea eax, [edi - 1]
add ebx, eax
lea eax, [ecx - 1]
test edi, edi
mov bl, byte [ebx + esi + 0x191d]
je 0x404d9e
lea eax, [edi - 1]
add edx, eax
push edi
mov cl, byte [edx + esi + 0x191d]
mov edx, dword [esp + 0x34]
mov byte [esp + 0x3f], cl
mov ecx, dword [esp + 0x15c]
mov al, byte [edx + 0x191d]
push ecx
mov ecx, esi
mov byte [esp + 0x42], al
call fcn.00406ee0
mov cl, byte [esp + 0x13]
xor edx, edx
cmp al, 0x57
mov ebp, dword [esp + 0x158]
setne dl
xor eax, eax
cmp cl, 0x57
setne al
shl eax, 1
xor ecx, ecx
cmp bl, 0x57
mov bl, byte [esp + 0x3b]
push edi
setne cl
or eax, ecx
xor ecx, ecx
shl eax, 1
cmp bl, 0x57
push ebp
setne cl
or eax, ecx
mov cl, byte [esp + 0x42]
shl eax, 1
or edx, eax
xor eax, eax
shl edx, 1
cmp cl, 0x57
mov ecx, esi
setne al
or edx, eax
shl edx, 1
mov ebx, edx
call fcn.00406f10
xor ecx, ecx
cmp al, 0x57
push edi
setne cl
or ebx, ecx
push ebp
mov ecx, esi
shl ebx, 1
call fcn.00406f40
xor edx, edx
cmp al, 0x57
setne dl
or ebx, edx
push edi
push ebp
mov ecx, esi
shl ebx, 1
call fcn.00406f60
xor ecx, ecx
cmp al, 0x57
setne cl
or ebx, ecx
mov eax, ebx
movzx ax, byte [eax + str.D_22_822______eeIIeeIIB_00:600__._]
cmp ax, 0x44
jne 0x406227
push edi
push ebp
mov word [esp + 0x38], 0x45
mov word [esp + 0x3a], 0x46
mov word [esp + 0x3c], ax
mov word [esp + 0x3e], 0x47
call fcn.004040b0
mov ax, word [esp + eax*2 + 0x38]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 8
mov dword [esp + 0x48], edi
mov edi, str.water_must_be_on_a_flat_tile
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x4c]
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x44], ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x4157c0
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x22
lea esi, [esp + 0x48]
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x48]
push ecx
call fcn.0040b2f1
push str.illegal_tile_character
push edi
push ebp
lea ecx, [esp + 0xd8]
call 0x406ea0
mov ecx, 0x22
mov esi, eax
lea edi, [esp + 0x44]
lea edx, [esp + 0x44]
push 0x4157c0
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.0040b2f1
mov cl, byte [ecx + 0x1d]
test cl, cl
mov byte [esp + 0x2c], cl
jne 0x404f7e
mov ecx, dword [esi + 4]
lea eax, [ebp + 1]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
mov dword [esp + 0x24], eax
add eax, edi
mov dl, byte [eax + esi + 0x1d]
test dl, dl
jne 0x404f7a
lea eax, [edi + 1]
cdq
idiv ecx
lea eax, [edx + ebx]
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jne 0x404f7a
mov ecx, dword [esp + 0x24]
add edx, ecx
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x404f7a
push edi
push ebp
call fcn.004040b0
movzx ax, byte [esp + eax + 0x30]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 8
mov cl, byte [esp + 0x2c]
cmp cl, 1
jne 0x404fdd
mov ecx, dword [esi + 4]
lea eax, [ebp + 1]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
mov dword [esp + 0x24], eax
add eax, edi
cmp byte [eax + esi + 0x1d], 1
jne 0x404fd9
lea eax, [edi + 1]
cdq
idiv ecx
lea eax, [edx + ebx]
cmp byte [eax + esi + 0x1d], 1
jne 0x404fd9
mov ecx, dword [esp + 0x24]
add edx, ecx
cmp byte [edx + esi + 0x1d], 1
jne 0x404fd9
push edi
push ebp
call fcn.004040b0
movzx ax, byte [esp + eax + 0x28]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 8
mov cl, byte [esp + 0x2c]
cmp cl, 2
jne 0x40503c
mov ecx, dword [esi + 4]
lea eax, [ebp + 1]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
mov dword [esp + 0x24], eax
add eax, edi
cmp byte [eax + esi + 0x1d], 2
jne 0x405038
lea eax, [edi + 1]
cdq
idiv ecx
lea eax, [edx + ebx]
cmp byte [eax + esi + 0x1d], 2
jne 0x405038
mov ecx, dword [esp + 0x24]
add edx, ecx
cmp byte [edx + esi + 0x1d], 2
jne 0x405038
push edi
push ebp
call fcn.004040b0
movzx ax, byte [esp + eax + 0x24]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 8
mov cl, byte [esp + 0x2c]
test cl, cl
je 0x40509f
mov edx, dword [esp + 0x158]
mov ebp, dword [esi + 4]
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
cdq
idiv ebp
mov dword [esp + 0x1c], edx
lea eax, [edx + edx*4]
shl eax, 4
mov dword [esp + 0x24], eax
add eax, edi
mov cl, byte [eax + esi + 0x1d]
test cl, cl
je 0x40509f
lea eax, [edi + 1]
mov dword [esp + 0x18], eax
cdq
idiv ebp
mov dword [esp + 0x20], edx
lea eax, [edx + ebx]
mov al, byte [eax + esi + 0x1d]
test al, al
mov byte [esp + 0x28], al
je 0x40509f
mov eax, dword [esp + 0x24]
add edx, eax
mov al, byte [edx + esi + 0x1d]
test al, al
mov byte [esp + 0x40], al
jne 0x405caf
mov ecx, dword [esp + 0x158]
mov ebp, dword [esi + 4]
lea eax, [ecx + 1]
mov dword [esp + 0x14], eax
cdq
idiv ebp
lea eax, [edi + 1]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
lea ecx, [edx + edx*4]
cdq
idiv ebp
shl ecx, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
lea eax, [edx + ecx]
add edx, ebx
add ecx, edi
mov al, byte [eax + esi + 0x1d]
mov dl, byte [edx + esi + 0x1d]
mov cl, byte [ecx + esi + 0x1d]
mov ebx, eax
mov byte [esp + 0x28], dl
and ebx, 0xff
and edx, 0xff
mov byte [esp + 0x40], al
add ebx, edx
mov edx, ecx
and edx, 0xff
add ebx, edx
mov edx, dword [esp + 0x2c]
and edx, 0xff
add ebx, edx
cmp ebx, 1
jne 0x4052a6
mov al, byte [esp + 0x2c]
test al, al
je 0x40518c
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x405132
lea eax, [ecx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
mov dl, byte [eax + esi + 0x1d]
test dl, dl
jbe 0x40517b
test edi, edi
jne 0x40514b
lea edi, [ebp - 1]
jmp 0x40514c
dec edi
test ecx, ecx
lea eax, [ebp - 1]
je 0x405156
lea eax, [ecx - 1]
inc eax
cdq
idiv ebp
lea ecx, [edx + edx*4]
shl ecx, 4
add ecx, edi
mov al, byte [ecx + esi + 0x1d]
test al, al
jbe 0x40517b
pop edi
pop esi
pop ebp
mov ax, 3
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x89
pop ebx
add esp, 0x144
ret 8
test cl, cl
je 0x4051e4
mov edx, dword [esp + 0x1c]
lea eax, [edx + 1]
cdq
idiv ebp
lea eax, [edx + edx*4]
shl eax, 4
add eax, edi
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jbe 0x4051d3
test edi, edi
jne 0x4051b3
lea edi, [ebp - 1]
jmp 0x4051b4
dec edi
mov ecx, dword [esp + 0x24]
add ecx, edi
mov al, byte [ecx + esi + 0x1d]
test al, al
jbe 0x4051d3
pop edi
pop esi
pop ebp
mov ax, 4
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x8c
pop ebx
add esp, 0x144
ret 8
mov al, byte [esp + 0x28]
test al, al
je 0x40524a
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x4051fd
lea eax, [ecx - 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, eax
mov bl, byte [edx + esi + 0x1d]
test bl, bl
jbe 0x405239
test ecx, ecx
jne 0x405218
dec ebp
jmp 0x40521b
lea ebp, [ecx - 1]
push eax
push ebp
mov ecx, esi
call fcn.00406fd0
test al, al
jbe 0x405239
pop edi
pop esi
pop ebp
mov ax, 2
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x86
pop ebx
add esp, 0x144
ret 8
mov eax, dword [esp + 0x1c]
push edi
push eax
mov ecx, esi
call fcn.00406fd0
test al, al
jbe 0x405295
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, dword [esp + 0x14]
mov edi, edx
cdq
idiv ecx
add esi, edi
lea ecx, [edx + edx*4]
shl ecx, 4
mov al, byte [ecx + esi + 0x1d]
test al, al
jbe 0x405295
pop edi
pop esi
pop ebp
mov ax, 1
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x83
pop ebx
add esp, 0x144
ret 8
mov bl, byte [esp + 0x2c]
test bl, bl
jne 0x4053c3
test cl, cl
jne 0x4053c3
mov dl, byte [esp + 0x28]
cmp dl, 1
jne 0x4053c7
cmp al, dl
jne 0x4053c7
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x4052e0
lea eax, [ecx - 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, eax
mov bl, byte [edx + esi + 0x1d]
test bl, bl
jne 0x40530f
test ecx, ecx
jne 0x4052fb
dec ebp
jmp 0x4052fe
lea ebp, [ecx - 1]
push eax
push ebp
mov ecx, esi
call fcn.00406fd0
cmp al, 1
jne 0x40530f
mov bl, al
jmp 0x405311
xor bl, bl
mov ebp, dword [esp + 0x14]
push edi
mov eax, ebp
mov ecx, esi
cdq
idiv dword [esi + 4]
push edx
call fcn.00406fd0
test al, al
jne 0x405358
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, ebp
mov dword [esp + 0x30], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x30]
add esi, ecx
lea eax, [edx + edx*4]
shl eax, 4
cmp byte [eax + esi + 0x1d], 1
jne 0x405358
mov al, 1
jmp 0x40535a
xor al, al
test bl, bl
je 0x405373
test al, al
je 0x405388
pop edi
pop esi
pop ebp
mov ax, 0xa
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x405399
pop edi
pop esi
pop ebp
mov ax, 0x54
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x55
pop ebx
add esp, 0x144
ret 8
mov edx, dword [esp + 0x158]
push edi
push edx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x49
pop esi
pop ebp
add eax, 0x56
pop ebx
add esp, 0x144
ret 8
mov dl, byte [esp + 0x28]
cmp bl, 1
jne 0x4054cd
cmp cl, bl
jne 0x4054cd
test dl, dl
jne 0x4054cd
test al, al
jne 0x4054cd
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x4053f9
lea eax, [ebx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jne 0x405434
test edi, edi
lea ecx, [ebp - 1]
je 0x405413
lea ecx, [edi - 1]
test ebx, ebx
lea eax, [ebp - 1]
je 0x40541d
lea eax, [ebx - 1]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, ecx
cmp byte [edx + esi + 0x1d], 1
jne 0x405434
mov cl, 1
jmp 0x405436
xor cl, cl
mov eax, dword [esp + 0x1c]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x405469
test edi, edi
jne 0x405455
dec ebp
jmp 0x405458
lea ebp, [edi - 1]
mov eax, dword [esp + 0x24]
add eax, ebp
cmp byte [eax + esi + 0x1d], 1
jne 0x405469
mov al, 1
jmp 0x40546b
xor al, al
test cl, cl
je 0x405484
test al, al
je 0x405499
pop edi
pop esi
pop ebp
mov ax, 0xc
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x4054aa
pop edi
pop esi
pop ebp
mov ax, 0x52
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x51
pop ebx
add esp, 0x144
ret 8
push edi
push ebx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x4e
pop esi
pop ebp
add eax, 0x53
pop ebx
add esp, 0x144
ret 8
test bl, bl
jne 0x4055b4
test dl, dl
jne 0x4055b4
cmp cl, 1
jne 0x4055b4
cmp al, cl
jne 0x4055b4
test edi, edi
lea eax, [ebp - 1]
je 0x4054f8
lea eax, [edi - 1]
mov ecx, dword [esp + 0x24]
lea edx, [ecx + eax]
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x405522
mov eax, dword [esp + 0x1c]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 1
jne 0x405522
mov bl, 1
jmp 0x405524
xor bl, bl
mov eax, dword [esp + 0x20]
inc eax
cdq
idiv ebp
add edx, ecx
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x405549
mov ecx, dword [esp + 0x1c]
push edi
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 1
jne 0x405549
jmp 0x40554b
xor al, al
test bl, bl
je 0x405564
test al, al
je 0x405579
pop edi
pop esi
pop ebp
mov ax, 9
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x40558a
pop edi
pop esi
pop ebp
mov ax, 0x5b
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x5a
pop ebx
add esp, 0x144
ret 8
mov edx, dword [esp + 0x158]
push edi
push edx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x42
pop esi
pop ebp
add eax, 0x5c
pop ebx
add esp, 0x144
ret 8
cmp bl, 1
jne 0x4056d2
cmp dl, bl
jne 0x40579d
test cl, cl
jne 0x4056d2
test al, al
jne 0x4056d2
test edi, edi
lea ecx, [ebp - 1]
je 0x4055df
lea ecx, [edi - 1]
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x4055f0
lea eax, [ebx - 1]
inc eax
cdq
idiv ebp
lea eax, [edx + edx*4]
shl eax, 4
add eax, ecx
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jne 0x405622
test ebx, ebx
lea eax, [ebp - 1]
je 0x40560e
lea eax, [ebx - 1]
lea ecx, [eax + eax*4]
mov byte [esp + 0x13], 1
shl ecx, 4
add ecx, edi
cmp byte [ecx + esi + 0x1d], 1
je 0x405627
mov byte [esp + 0x13], 0
test ebx, ebx
jne 0x40562e
dec ebp
jmp 0x405631
lea ebp, [ebx - 1]
mov edx, dword [esp + 0x20]
mov ecx, esi
push edx
push ebp
call fcn.00406fd0
test al, al
jne 0x40566a
test ebx, ebx
jne 0x40564c
mov ecx, dword [esi + 4]
dec ecx
jmp 0x40564f
lea ecx, [ebx - 1]
mov eax, dword [esp + 0x18]
cdq
idiv dword [esi + 4]
lea eax, [ecx + ecx*4]
shl eax, 4
add esi, edx
cmp byte [eax + esi + 0x1d], 1
jne 0x40566a
mov al, 1
jmp 0x40566c
xor al, al
mov cl, byte [esp + 0x13]
test cl, cl
je 0x405689
test al, al
je 0x40569e
pop edi
pop esi
pop ebp
mov ax, 0xb
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x4056af
pop edi
pop esi
pop ebp
mov ax, 0x57
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x58
pop ebx
add esp, 0x144
ret 8
push edi
push ebx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x47
pop esi
pop ebp
add eax, 0x59
pop ebx
add esp, 0x144
ret 8
cmp dl, 1
jne 0x40579d
cmp bl, dl
jne 0x405874
cmp cl, dl
jne 0x40579d
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x4056fc
lea eax, [ecx - 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, eax
mov bl, byte [edx + esi + 0x1d]
test bl, bl
jbe 0x40572b
test ecx, ecx
jne 0x405717
dec ebp
jmp 0x40571a
lea ebp, [ecx - 1]
push eax
push ebp
mov ecx, esi
call fcn.00406fd0
test al, al
jne 0x40572b
mov bl, 1
jmp 0x40572d
xor bl, bl
test edi, edi
jne 0x405737
mov ebp, dword [esi + 4]
dec ebp
jmp 0x40573a
lea ebp, [edi - 1]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
add eax, ebp
cmp byte [eax + esi + 0x1d], 0
jbe 0x40576d
lea eax, [edx + 1]
cdq
idiv ecx
lea ecx, [edx + edx*4]
shl ecx, 4
add ecx, edi
mov al, byte [ecx + esi + 0x1d]
test al, al
jne 0x40576d
mov al, 1
jmp 0x40576f
xor al, al
test bl, bl
jne 0x405787
neg al
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 0x62
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0xa7
pop esi
pop ebp
add eax, 0x60
pop ebx
add esp, 0x144
ret 8
cmp bl, 1
jne 0x405874
cmp cl, bl
jne 0x40593e
cmp al, bl
jne 0x405874
test edi, edi
lea ecx, [ebp - 1]
je 0x4057c0
lea ecx, [edi - 1]
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x4057d1
lea eax, [ebx - 1]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, ecx
mov al, byte [edx + esi + 0x1d]
test al, al
jbe 0x405804
test ebx, ebx
jne 0x4057ec
dec ebp
jmp 0x4057ef
lea ebp, [ebx - 1]
lea eax, [ebp + ebp*4]
shl eax, 4
add eax, edi
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jne 0x405804
mov bl, 1
jmp 0x405806
xor bl, bl
mov ecx, dword [esp + 0x1c]
push edi
push ecx
mov ecx, esi
call fcn.00406fd0
test al, al
jbe 0x405844
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, dword [esp + 0x14]
mov edi, edx
cdq
idiv ecx
add esi, edi
lea edx, [edx + edx*4]
shl edx, 4
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x405844
mov al, 1
jmp 0x405846
xor al, al
test bl, bl
jne 0x40585e
neg al
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 0x65
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0xa5
pop esi
pop ebp
add eax, 0x63
pop ebx
add esp, 0x144
ret 8
cmp cl, 1
jne 0x40593e
cmp al, cl
jne 0x405a02
cmp dl, cl
jne 0x40593e
mov eax, dword [esp + 0x1c]
inc eax
cdq
idiv ebp
lea ecx, [edx + edx*4]
shl ecx, 4
add ecx, edi
mov al, byte [ecx + esi + 0x1d]
test al, al
jbe 0x4058c1
test edi, edi
jne 0x4058ae
lea edi, [ebp - 1]
jmp 0x4058af
dec edi
mov edx, dword [esp + 0x24]
add edx, edi
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x4058c1
mov bl, 1
jmp 0x4058c3
xor bl, bl
mov edi, dword [esp + 0x158]
test edi, edi
jne 0x4058d1
dec ebp
jmp 0x4058d4
lea ebp, [edi - 1]
mov eax, dword [esp + 0x20]
mov ecx, esi
push eax
push ebp
call fcn.00406fd0
test al, al
jbe 0x40590e
test edi, edi
jne 0x4058ef
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4058f2
lea ecx, [edi - 1]
mov eax, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
cdq
idiv dword [esi + 4]
shl ecx, 4
add esi, edx
mov al, byte [ecx + esi + 0x1d]
test al, al
jne 0x40590e
mov al, 1
jmp 0x405910
xor al, al
test bl, bl
jne 0x405928
neg al
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 0x68
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0x9f
pop esi
pop ebp
add eax, 0x66
pop ebx
add esp, 0x144
ret 8
cmp al, 1
jne 0x405a02
cmp dl, al
jne 0x405a02
cmp bl, al
jne 0x405b71
mov edx, dword [esp + 0x158]
lea eax, [ebp - 1]
test edx, edx
je 0x405967
lea eax, [edx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jbe 0x4059a3
test edi, edi
lea ecx, [ebp - 1]
je 0x405981
lea ecx, [edi - 1]
test edx, edx
lea eax, [ebp - 1]
je 0x40598b
lea eax, [edx - 1]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, ecx
mov al, byte [edx + esi + 0x1d]
test al, al
jne 0x4059a3
mov bl, 1
jmp 0x4059a5
xor bl, bl
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
inc eax
cdq
idiv ebp
add edx, ecx
mov al, byte [edx + esi + 0x1d]
test al, al
jbe 0x4059d0
mov ecx, dword [esp + 0x1c]
push edi
push ecx
mov ecx, esi
call fcn.00406fd0
test al, al
jne 0x4059d0
mov al, 1
jmp 0x4059d2
xor al, al
test bl, bl
jne 0x4059ec
neg al
sbb eax, eax
pop edi
and al, 0xfe
pop esi
pop ebp
add eax, 0x5f
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0xa8
pop esi
pop ebp
add eax, 0x5e
pop ebx
add esp, 0x144
ret 8
cmp bl, 1
jne 0x405b71
cmp al, bl
jne 0x405b71
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x405a24
lea eax, [ebx - 1]
lea edx, [eax + eax*4]
shl edx, 4
add edx, edi
mov al, byte [edx + esi + 0x1d]
test al, al
jbe 0x405aab
test edi, edi
lea ecx, [ebp - 1]
je 0x405a3e
lea ecx, [edi - 1]
test ebx, ebx
lea eax, [ebp - 1]
je 0x405a48
lea eax, [ebx - 1]
inc eax
cdq
idiv ebp
lea eax, [edx + edx*4]
shl eax, 4
add eax, ecx
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jbe 0x405aab
mov ecx, dword [esp + 0x1c]
push edi
push ecx
mov ecx, esi
call fcn.00406fd0
test al, al
jbe 0x405aab
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov ebp, dword [esp + 0x14]
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, ebp
mov ebx, edx
cdq
idiv ecx
mov eax, esi
add eax, ebx
lea edx, [edx + edx*4]
shl edx, 4
mov cl, byte [edx + eax + 0x1d]
test cl, cl
jbe 0x405ab1
pop edi
pop esi
pop ebp
mov ax, 0x4d
pop ebx
add esp, 0x144
ret 8
mov ebp, dword [esp + 0x14]
jmp 0x405ab8
mov ebx, dword [esp + 0x158]
test ebx, ebx
jne 0x405ac2
mov eax, dword [esi + 4]
dec eax
jmp 0x405ac5
lea eax, [ebx - 1]
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, edi
mov al, byte [ecx + esi + 0x1d]
test al, al
jbe 0x405b15
test edi, edi
jne 0x405adf
mov ecx, dword [esi + 4]
dec ecx
jmp 0x405ae2
lea ecx, [edi - 1]
test ebx, ebx
jne 0x405aec
mov eax, dword [esi + 4]
dec eax
jmp 0x405aef
lea eax, [ebx - 1]
inc eax
cdq
idiv dword [esi + 4]
lea edx, [edx + edx*4]
shl edx, 4
add edx, ecx
mov al, byte [edx + esi + 0x1d]
test al, al
jbe 0x405b15
pop edi
pop esi
pop ebp
mov ax, 0x81
pop ebx
add esp, 0x144
ret 8
mov eax, ebp
push edi
cdq
idiv dword [esi + 4]
mov ecx, esi
push edx
call fcn.00406fd0
test al, al
jbe 0x405b60
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, ebp
mov edi, edx
cdq
idiv ecx
add esi, edi
lea eax, [edx + edx*4]
shl eax, 4
mov cl, byte [eax + esi + 0x1d]
test cl, cl
jbe 0x405b60
pop edi
pop esi
pop ebp
mov ax, 0x82
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x84
pop ebx
add esp, 0x144
ret 8
cmp cl, 1
jne 0x405cb7
cmp dl, cl
jne 0x405cb7
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 1]
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
mov al, byte [edx + esi + 0x1d]
test al, al
jbe 0x405c01
test edi, edi
lea eax, [ebp - 1]
je 0x405ba6
lea eax, [edi - 1]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x158]
add ecx, eax
mov al, byte [ecx + esi + 0x1d]
test al, al
jbe 0x405c08
test ebx, ebx
lea eax, [ebp - 1]
je 0x405bc5
lea eax, [ebx - 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, eax
mov cl, byte [edx + esi + 0x1d]
test cl, cl
jbe 0x405c08
test ebx, ebx
jne 0x405be0
dec ebp
jmp 0x405be3
lea ebp, [ebx - 1]
push eax
push ebp
mov ecx, esi
call fcn.00406fd0
test al, al
jbe 0x405c08
pop edi
pop esi
pop ebp
mov ax, 0x4e
pop ebx
add esp, 0x144
ret 8
mov ebx, dword [esp + 0x158]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov ebp, edx
lea eax, [ebp + 1]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
add eax, edi
mov dl, byte [eax + esi + 0x1d]
test dl, dl
jbe 0x405c56
test edi, edi
jne 0x405c33
lea edi, [ecx - 1]
jmp 0x405c34
dec edi
lea edx, [ebp + ebp*4]
shl edx, 4
add edx, edi
mov al, byte [edx + esi + 0x1d]
test al, al
jbe 0x405c56
pop edi
pop esi
pop ebp
mov ax, 0x85
pop ebx
add esp, 0x144
ret 8
test ebx, ebx
lea edi, [ecx - 1]
je 0x405c60
lea edi, [ebx - 1]
mov eax, dword [esp + 0x18]
cdq
idiv ecx
lea eax, [edi + edi*4]
shl eax, 4
add eax, edx
cmp byte [eax + esi + 0x1d], 0
jbe 0x405c9e
test ebx, ebx
lea eax, [ecx - 1]
je 0x405c80
lea eax, [ebx - 1]
push edx
push eax
mov ecx, esi
call fcn.00406fd0
test al, al
jbe 0x405c9e
pop edi
pop esi
pop ebp
mov ax, 0x87
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x88
pop ebx
add esp, 0x144
ret 8
mov bl, byte [esp + 0x2c]
mov dl, byte [esp + 0x28]
cmp bl, 1
je 0x405cce
cmp cl, 1
je 0x405cce
cmp dl, 1
je 0x405cce
cmp al, 1
jne 0x406e43
xor ebx, ebx
cmp al, 2
sete bl
xor eax, eax
cmp dl, 2
sete al
add ebx, eax
mov eax, dword [esp + 0x3c]
xor edx, edx
cmp cl, 2
mov al, byte [eax + 0x1d]
sete dl
add ebx, edx
xor edx, edx
cmp al, 2
sete dl
add ebx, edx
cmp ebx, 1
jne 0x405e7f
mov bl, 2
cmp al, bl
jne 0x405d6f
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x405d19
lea eax, [ecx - 1]
lea edx, [eax + eax*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], bl
jne 0x405d5e
test edi, edi
jne 0x405d30
lea edi, [ebp - 1]
jmp 0x405d31
dec edi
test ecx, ecx
lea eax, [ebp - 1]
je 0x405d3b
lea eax, [ecx - 1]
inc eax
cdq
idiv ebp
lea eax, [edx + edx*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], bl
jne 0x405d5e
pop edi
pop esi
pop ebp
mov ax, 0x10
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x95
pop ebx
add esp, 0x144
ret 8
cmp cl, bl
jne 0x405dc3
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 1]
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], bl
jne 0x405db2
test edi, edi
jne 0x405d94
lea edi, [ebp - 1]
jmp 0x405d95
dec edi
mov eax, dword [esp + 0x24]
add eax, edi
cmp byte [eax + esi + 0x1d], bl
jne 0x405db2
pop edi
pop esi
pop ebp
mov ax, 0x11
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x98
pop ebx
add esp, 0x144
ret 8
cmp byte [esp + 0x28], bl
jne 0x405e25
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x405dda
lea eax, [ecx - 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, eax
cmp byte [edx + esi + 0x1d], bl
jne 0x405e14
test ecx, ecx
jne 0x405df3
dec ebp
jmp 0x405df6
lea ebp, [ecx - 1]
push eax
push ebp
mov ecx, esi
call fcn.00406fd0
cmp al, bl
jne 0x405e14
pop edi
pop esi
pop ebp
mov ax, 0xf
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x92
pop ebx
add esp, 0x144
ret 8
mov eax, dword [esp + 0x1c]
push edi
push eax
mov ecx, esi
call fcn.00406fd0
cmp al, bl
jne 0x405e6e
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, dword [esp + 0x14]
mov edi, edx
cdq
idiv ecx
add esi, edi
lea ecx, [edx + edx*4]
shl ecx, 4
cmp byte [ecx + esi + 0x1d], bl
jne 0x405e6e
pop edi
pop esi
pop ebp
mov ax, 0xe
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x8f
pop ebx
add esp, 0x144
ret 8
cmp al, 2
jae 0x405f6a
cmp cl, 2
jae 0x405f6a
mov bl, byte [esp + 0x28]
mov dl, byte [esp + 0x40]
cmp bl, 2
jne 0x405f72
cmp dl, 2
jne 0x405f72
mov ecx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ecx, ecx
je 0x405ebb
lea eax, [ecx - 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, eax
cmp byte [edx + esi + 0x1d], 2
jae 0x405ee9
test ecx, ecx
jne 0x405ed5
dec ebp
jmp 0x405ed8
lea ebp, [ecx - 1]
push eax
push ebp
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jne 0x405ee9
mov bl, 1
jmp 0x405eeb
xor bl, bl
mov ebp, dword [esp + 0x14]
push edi
mov eax, ebp
mov ecx, esi
cdq
idiv dword [esi + 4]
push edx
call fcn.00406fd0
cmp al, 2
jae 0x405f32
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edx
inc eax
cdq
idiv ecx
mov eax, ebp
mov dword [esp + 0x30], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x30]
add esi, ecx
lea eax, [edx + edx*4]
shl eax, 4
cmp byte [eax + esi + 0x1d], 2
jne 0x405f32
mov al, 1
jmp 0x405f34
xor al, al
test bl, bl
je 0x405f51
test al, al
je 0x406327
pop edi
pop esi
pop ebp
mov ax, 0x17
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x40637c
pop edi
pop esi
pop ebp
mov ax, 0x6c
pop ebx
add esp, 0x144
ret 8
mov bl, byte [esp + 0x28]
mov dl, byte [esp + 0x40]
cmp al, 2
jne 0x40604b
cmp cl, al
jne 0x406049
cmp bl, al
jae 0x406049
cmp dl, al
jae 0x406049
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x405fa3
lea eax, [ebx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], 2
jae 0x405fdd
test edi, edi
lea ecx, [ebp - 1]
je 0x405fbc
lea ecx, [edi - 1]
test ebx, ebx
lea eax, [ebp - 1]
je 0x405fc6
lea eax, [ebx - 1]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, ecx
cmp byte [edx + esi + 0x1d], 2
jne 0x405fdd
mov cl, 1
jmp 0x405fdf
xor cl, cl
mov eax, dword [esp + 0x1c]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 2
jae 0x406011
test edi, edi
jne 0x405ffd
dec ebp
jmp 0x406000
lea ebp, [edi - 1]
mov eax, dword [esp + 0x24]
add eax, ebp
cmp byte [eax + esi + 0x1d], 2
jne 0x406011
mov al, 1
jmp 0x406013
xor al, al
test cl, cl
je 0x406030
test al, al
je 0x406480
pop edi
pop esi
pop ebp
mov ax, 0x19
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x4064bf
pop edi
pop esi
pop ebp
mov ax, 0x6a
pop ebx
add esp, 0x144
ret 8
cmp al, 2
jae 0x406126
cmp bl, 2
jae 0x406124
cmp cl, 2
jne 0x406124
cmp dl, cl
jne 0x406124
test edi, edi
lea eax, [ebp - 1]
je 0x406075
lea eax, [edi - 1]
mov ecx, dword [esp + 0x24]
lea edx, [ecx + eax]
cmp byte [edx + esi + 0x1d], 2
jae 0x40609e
mov eax, dword [esp + 0x1c]
inc eax
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 2
jne 0x40609e
mov bl, 1
jmp 0x4060a0
xor bl, bl
mov eax, dword [esp + 0x20]
inc eax
cdq
idiv ebp
add edx, ecx
cmp byte [edx + esi + 0x1d], 2
jae 0x4060c6
mov ecx, dword [esp + 0x1c]
push edi
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jne 0x4060c6
mov al, 1
jmp 0x4060c8
xor al, al
test bl, bl
je 0x4060e5
test al, al
je 0x4065f1
pop edi
pop esi
pop ebp
mov ax, 0x16
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x4060fa
pop edi
pop esi
pop ebp
mov ax, 0x73
pop ebx
add esp, 0x144
ret 8
mov edx, dword [esp + 0x158]
push edi
push edx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x2e
pop esi
pop ebp
add eax, 0x74
pop ebx
add esp, 0x144
ret 8
cmp al, 2
jne 0x406234
cmp bl, 2
jne 0x406234
cmp cl, bl
jae 0x406234
cmp dl, bl
jae 0x406234
test edi, edi
lea ecx, [ebp - 1]
je 0x40614f
lea ecx, [edi - 1]
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x406160
lea eax, [ebx - 1]
inc eax
cdq
idiv ebp
lea eax, [edx + edx*4]
shl eax, 4
add eax, ecx
cmp byte [eax + esi + 0x1d], 2
jae 0x406191
test ebx, ebx
lea eax, [ebp - 1]
je 0x40617d
lea eax, [ebx - 1]
lea ecx, [eax + eax*4]
mov byte [esp + 0x13], 1
shl ecx, 4
add ecx, edi
cmp byte [ecx + esi + 0x1d], 2
je 0x406196
mov byte [esp + 0x13], 0
test ebx, ebx
jne 0x40619d
dec ebp
jmp 0x4061a0
lea ebp, [ebx - 1]
mov edx, dword [esp + 0x20]
mov ecx, esi
push edx
push ebp
call fcn.00406fd0
cmp al, 2
jae 0x4061d9
test ebx, ebx
jne 0x4061bb
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4061be
lea ecx, [ebx - 1]
mov eax, dword [esp + 0x18]
cdq
idiv dword [esi + 4]
lea eax, [ecx + ecx*4]
shl eax, 4
add esi, edx
cmp byte [eax + esi + 0x1d], 2
jne 0x4061d9
mov al, 1
jmp 0x4061db
xor al, al
mov cl, byte [esp + 0x13]
test cl, cl
je 0x4061fc
test al, al
je 0x4067bc
pop edi
pop esi
pop ebp
mov ax, 0x18
pop ebx
add esp, 0x144
ret 8
test al, al
je 0x406211
pop edi
pop esi
pop ebp
mov ax, 0x6f
pop ebx
add esp, 0x144
ret 8
push edi
push ebx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
and eax, 0x33
add eax, 0x71
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 8
cmp al, 1
jne 0x4063a6
cmp cl, al
jne 0x4063a6
cmp bl, 2
jne 0x4063a6
cmp dl, bl
jne 0x4063a6
mov ebx, dword [esp + 0x158]
test ebx, ebx
jne 0x406263
dec ebp
jmp 0x406266
lea ebp, [ebx - 1]
mov edx, dword [esp + 0x20]
lea ecx, [ebp + ebp*4]
shl ecx, 4
add ecx, edx
cmp byte [ecx + esi + 0x1d], 2
jae 0x40629c
mov edx, dword [esp + 0x1c]
push edi
push edx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jae 0x40629c
pop edi
pop esi
pop ebp
mov ax, 0x17
pop ebx
add esp, 0x144
ret 8
test ebx, ebx
jne 0x4062a6
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4062a9
lea ecx, [ebx - 1]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esi + 4]
mov eax, ebx
cdq
idiv ebp
lea eax, [ecx + ecx*4]
mov ecx, esi
shl eax, 4
add ecx, edx
cmp byte [eax + ecx + 0x1d], 2
jne 0x4062eb
mov eax, dword [esp + 0x14]
push edi
cdq
idiv ebp
mov ecx, esi
push edx
call fcn.00406fd0
cmp al, 2
jae 0x4062eb
pop edi
pop esi
pop ebp
mov ax, 0x6c
pop ebx
add esp, 0x144
ret 8
mov ecx, dword [esp + 0x158]
test ecx, ecx
jne 0x4062f9
mov ecx, dword [esi + 4]
mov ebp, dword [esi + 4]
mov eax, ebx
cdq
idiv ebp
dec ecx
lea eax, [ecx + ecx*4]
mov ecx, esi
shl eax, 4
add ecx, edx
cmp byte [eax + ecx + 0x1d], 2
jae 0x406338
mov eax, dword [esp + 0x14]
push edi
cdq
idiv ebp
mov ecx, esi
push edx
call fcn.00406fd0
cmp al, 2
jne 0x406338
pop edi
pop esi
pop ebp
mov ax, 0x6d
pop ebx
add esp, 0x144
ret 8
mov ecx, dword [esp + 0x158]
test ecx, ecx
jne 0x406346
mov ecx, dword [esi + 4]
mov ebp, dword [esi + 4]
mov eax, ebx
cdq
idiv ebp
dec ecx
lea eax, [ecx + ecx*4]
mov ecx, esi
shl eax, 4
add ecx, edx
cmp byte [eax + ecx + 0x1d], 2
jne 0x4064e2
mov eax, dword [esp + 0x14]
push edi
cdq
idiv ebp
mov ecx, esi
push edx
call fcn.00406fd0
cmp al, 2
jne 0x4064e2
mov edx, dword [esp + 0x158]
push edi
push edx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x35
pop esi
pop ebp
add eax, 0x6e
pop ebx
add esp, 0x144
ret 8
cmp al, 2
jne 0x4064e2
cmp cl, al
jne 0x4064e2
cmp bl, 1
jne 0x4064e2
cmp dl, bl
jne 0x4064e2
mov ebx, dword [esp + 0x158]
lea eax, [ebp - 1]
test ebx, ebx
je 0x4063d8
lea eax, [ebx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
mov cl, byte [eax + esi + 0x1d]
cmp cl, 2
mov ecx, dword [esp + 0x1c]
jae 0x406413
lea eax, [ecx + 1]
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 2
jae 0x406413
pop edi
pop esi
pop ebp
mov ax, 0x19
pop ebx
add esp, 0x144
ret 8
test ebx, ebx
lea eax, [ebp - 1]
je 0x40641d
lea eax, [ebx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], 2
jne 0x406452
lea eax, [ecx + 1]
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 2
jae 0x406452
pop edi
pop esi
pop ebp
mov ax, 0x6a
pop ebx
add esp, 0x144
ret 8
test ebx, ebx
lea eax, [ebp - 1]
je 0x40645c
lea eax, [ebx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], 2
jae 0x406491
lea eax, [ecx + 1]
cdq
idiv ebp
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 2
jne 0x406491
pop edi
pop esi
pop ebp
mov ax, 0x69
pop ebx
add esp, 0x144
ret 8
test ebx, ebx
lea eax, [ebp - 1]
je 0x40649b
lea eax, [ebx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], 2
jne 0x4064e2
lea eax, [ecx + 1]
cdq
idiv ebp
lea ecx, [edx + edx*4]
shl ecx, 4
add ecx, edi
cmp byte [ecx + esi + 0x1d], 2
jne 0x4064e2
push edi
push ebx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x3a
pop esi
pop ebp
add eax, 0x6b
pop ebx
add esp, 0x144
ret 8
mov edx, dword [esp + 0x3c]
cmp byte [edx + 0x1d], 1
jne 0x406668
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, dword [esp + 0x30]
mov ebx, edx
lea edx, [ebx + eax]
cmp byte [edx + esi + 0x1d], 1
jne 0x406668
mov eax, dword [esp + 0x14]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
lea ebp, [eax + edi]
cmp byte [esi + ebp + 0x1d], 2
jne 0x406668
lea ebp, [ebx + eax]
cmp byte [esi + ebp + 0x1d], 2
jne 0x406668
test edi, edi
jne 0x40653e
dec ecx
jmp 0x406541
lea ecx, [edi - 1]
add eax, ecx
cmp byte [eax + esi + 0x1d], 2
jae 0x406568
push ebx
push edx
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jae 0x406568
pop edi
pop esi
pop ebp
mov ax, 0x16
pop ebx
add esp, 0x144
ret 8
test edi, edi
jne 0x406572
mov ebx, dword [esi + 4]
dec ebx
jmp 0x406575
lea ebx, [edi - 1]
mov eax, dword [esp + 0x14]
mov ebp, dword [esi + 4]
cdq
idiv ebp
mov ecx, edx
lea eax, [ecx + ecx*4]
shl eax, 4
add eax, ebx
cmp byte [eax + esi + 0x1d], 2
jne 0x4065b5
mov eax, dword [esp + 0x18]
cdq
idiv ebp
push edx
push ecx
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jae 0x4065b5
pop edi
pop esi
pop ebp
mov ax, 0x73
pop ebx
add esp, 0x144
ret 8
test edi, edi
jne 0x4065bf
mov ebx, dword [esi + 4]
dec ebx
jmp 0x4065c2
lea ebx, [edi - 1]
mov eax, dword [esp + 0x14]
mov ebp, dword [esi + 4]
cdq
idiv ebp
mov ecx, edx
lea edx, [ecx + ecx*4]
shl edx, 4
add edx, ebx
cmp byte [edx + esi + 0x1d], 2
jae 0x406602
mov eax, dword [esp + 0x18]
cdq
idiv ebp
push edx
push ecx
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jne 0x406602
pop edi
pop esi
pop ebp
mov ax, 0x72
pop ebx
add esp, 0x144
ret 8
test edi, edi
jne 0x40660c
mov ebx, dword [esi + 4]
dec ebx
jmp 0x40660f
lea ebx, [edi - 1]
mov eax, dword [esp + 0x14]
mov ebp, dword [esi + 4]
cdq
idiv ebp
mov ecx, edx
lea eax, [ecx + ecx*4]
shl eax, 4
add eax, ebx
cmp byte [eax + esi + 0x1d], 2
jne 0x406668
mov eax, dword [esp + 0x18]
cdq
idiv ebp
push edx
push ecx
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jne 0x406668
mov ecx, dword [esp + 0x158]
push edi
push ecx
call fcn.004040b0
and al, 1
add esp, 8
neg al
sbb eax, eax
pop edi
and eax, 0x2e
pop esi
pop ebp
add eax, 0x74
pop ebx
add esp, 0x144
ret 8
mov edx, dword [esp + 0x3c]
cmp byte [edx + 0x1d], 2
jne 0x40681b
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, dword [esp + 0x30]
mov ebx, edx
lea edx, [ebx + eax]
cmp byte [edx + esi + 0x1d], 2
jne 0x40681b
mov eax, dword [esp + 0x14]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
lea edx, [eax + edi]
cmp byte [edx + esi + 0x1d], 1
jne 0x40681b
add ebx, eax
cmp byte [ebx + esi + 0x1d], 1
jne 0x40681b
test edi, edi
lea eax, [ecx - 1]
je 0x4066c6
lea eax, [edi - 1]
mov ebp, dword [esp + 0x158]
test ebp, ebp
jne 0x4066d4
dec ecx
jmp 0x4066d7
lea ecx, [ebp - 1]
push eax
push ecx
mov ecx, esi
call fcn.00406f90
cmp al, 2
jae 0x406719
test ebp, ebp
jne 0x4066ee
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4066f1
lea ecx, [ebp - 1]
mov ebx, dword [esp + 0x18]
mov eax, ebx
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jae 0x40671d
pop edi
pop esi
pop ebp
mov ax, 0x18
pop ebx
add esp, 0x144
ret 8
mov ebx, dword [esp + 0x18]
test edi, edi
jne 0x406727
mov ecx, dword [esi + 4]
dec ecx
jmp 0x40672a
lea ecx, [edi - 1]
test ebp, ebp
jne 0x406734
mov eax, dword [esi + 4]
dec eax
jmp 0x406737
lea eax, [ebp - 1]
push ecx
push eax
mov ecx, esi
call fcn.00406f90
cmp al, 2
jne 0x406775
test ebp, ebp
jne 0x40674e
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406751
lea ecx, [ebp - 1]
mov eax, ebx
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jae 0x406775
pop edi
pop esi
pop ebp
mov ax, 0x6f
pop ebx
add esp, 0x144
ret 8
test edi, edi
jne 0x40677f
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406782
lea ecx, [edi - 1]
test ebp, ebp
jne 0x40678c
mov eax, dword [esi + 4]
dec eax
jmp 0x40678f
lea eax, [ebp - 1]
push ecx
push eax
mov ecx, esi
call fcn.00406f90
cmp al, 2
jae 0x4067cd
test ebp, ebp
jne 0x4067a6
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4067a9
lea ecx, [ebp - 1]
mov eax, ebx
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jne 0x4067cd
pop edi
pop esi
pop ebp
mov ax, 0x70
pop ebx
add esp, 0x144
ret 8
test edi, edi
jne 0x4067d7
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4067da
lea ecx, [edi - 1]
test ebp, ebp
jne 0x4067e4
mov eax, dword [esi + 4]
dec eax
jmp 0x4067e7
lea eax, [ebp - 1]
push ecx
push eax
mov ecx, esi
call fcn.00406f90
cmp al, 2
jne 0x406822
test ebp, ebp
jne 0x4067fe
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406801
lea ecx, [ebp - 1]
mov eax, ebx
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jne 0x406822
push edi
push ebp
jmp 0x406213
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, dword [esp + 0x30]
mov ebx, edx
lea edx, [ebx + eax]
mov al, byte [edx + esi + 0x1d]
cmp al, 2
mov byte [esp + 0x28], al
jne 0x406911
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x1d], 2
jne 0x406911
mov eax, dword [esp + 0x14]
cdq
idiv ecx
lea edx, [edx + edx*4]
shl edx, 4
add edx, edi
cmp byte [edx + esi + 0x1d], 2
jne 0x406911
test ebp, ebp
jne 0x406874
dec ecx
jmp 0x406877
lea ecx, [ebp - 1]
push edi
push ecx
mov ecx, esi
call fcn.00406fb0
cmp al, 1
jbe 0x4068aa
test ebp, ebp
jne 0x40688e
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406891
lea ecx, [ebp - 1]
mov eax, dword [esp + 0x18]
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jae 0x4068aa
mov bl, 1
jmp 0x4068ac
xor bl, bl
test edi, edi
jne 0x4068b6
mov ecx, dword [esi + 4]
dec ecx
jmp 0x4068b9
lea ecx, [edi - 1]
mov eax, dword [esp + 0x14]
cdq
idiv dword [esi + 4]
lea eax, [edx + edx*4]
shl eax, 4
add eax, ecx
cmp byte [eax + esi + 0x1d], 1
jbe 0x4068e1
push edi
push edx
mov ecx, esi
call fcn.00406f90
cmp al, 2
jae 0x4068e1
mov al, 1
jmp 0x4068e3
xor al, al
test bl, bl
jne 0x4068fb
neg al
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 0x7a
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0x9c
pop esi
pop ebp
add eax, 0x78
pop ebx
add esp, 0x144
ret 8
mov edx, dword [esp + 0x3c]
mov al, byte [edx + 0x1d]
cmp al, 2
mov byte [esp + 0x2c], al
jne 0x4069f6
mov eax, dword [esp + 0x14]
cdq
idiv ecx
lea eax, [edx + edx*4]
shl eax, 4
lea edx, [eax + edi]
cmp byte [edx + esi + 0x1d], 2
jne 0x4069f6
add eax, ebx
cmp byte [eax + esi + 0x1d], 2
jne 0x4069f6
test edi, edi
lea eax, [ecx - 1]
je 0x406956
lea eax, [edi - 1]
test ebp, ebp
jne 0x40695d
dec ecx
jmp 0x406960
lea ecx, [ebp - 1]
push eax
push ecx
mov ecx, esi
call fcn.00406f90
cmp al, 1
jbe 0x40698d
test ebp, ebp
jne 0x406977
mov eax, dword [esi + 4]
dec eax
jmp 0x40697a
lea eax, [ebp - 1]
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, edi
cmp byte [ecx + esi + 0x1d], 2
jae 0x40698d
mov bl, 1
jmp 0x40698f
xor bl, bl
push edi
mov edi, dword [esp + 0x18]
mov eax, edi
mov ecx, esi
cdq
idiv dword [esi + 4]
push edx
call fcn.00406fd0
cmp al, 1
jbe 0x4069c6
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edi
push edx
cdq
idiv ecx
mov ecx, esi
push edx
call fcn.00406fb0
cmp al, 2
jae 0x4069c6
mov al, 1
jmp 0x4069c8
xor al, al
test bl, bl
jne 0x4069e0
neg al
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 0x7d
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0x9a
pop esi
pop ebp
add eax, 0x7b
pop ebx
add esp, 0x144
ret 8
mov eax, dword [esp + 0x14]
cdq
idiv ecx
mov ebp, edx
lea eax, [ebp + ebp*4]
shl eax, 4
lea edx, [eax + edi]
mov dl, byte [edx + esi + 0x1d]
cmp dl, 2
mov byte [esp + 0x30], dl
jne 0x406ae3
lea edx, [ebx + eax]
cmp byte [edx + esi + 0x1d], 2
jne 0x406ae3
cmp byte [esp + 0x28], 2
jne 0x406ae3
push edi
push ebp
mov ecx, esi
call fcn.00406f90
cmp al, 1
jbe 0x406a68
test edi, edi
jne 0x406a4a
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406a4d
lea ecx, [edi - 1]
mov eax, dword [esp + 0x14]
cdq
idiv dword [esi + 4]
lea eax, [edx + edx*4]
shl eax, 4
add eax, ecx
cmp byte [eax + esi + 0x1d], 2
jae 0x406a68
mov bl, 1
jmp 0x406a6a
xor bl, bl
mov ebp, dword [esp + 0x158]
test ebp, ebp
jne 0x406a7b
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406a7e
lea ecx, [ebp - 1]
mov eax, dword [esp + 0x18]
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 1
jbe 0x406ab1
test ebp, ebp
jne 0x406a9d
mov eax, dword [esi + 4]
dec eax
jmp 0x406aa0
lea eax, [ebp - 1]
push edi
push eax
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jae 0x406ab1
mov al, 1
jmp 0x406ab3
xor al, al
test bl, bl
jne 0x406acd
neg al
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 0x80
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0x94
pop esi
pop ebp
add eax, 0x7e
pop ebx
add esp, 0x144
ret 8
add ebx, eax
mov al, byte [ebx + esi + 0x1d]
cmp al, 2
jne 0x406bb5
cmp byte [esp + 0x28], al
jne 0x406bb5
cmp byte [esp + 0x2c], al
jne 0x406cfa
mov edx, dword [esp + 0x158]
lea eax, [ecx - 1]
test edx, edx
je 0x406b16
lea eax, [edx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], 1
jbe 0x406b4a
test edi, edi
lea eax, [ecx - 1]
je 0x406b2f
lea eax, [edi - 1]
test edx, edx
jne 0x406b36
dec ecx
jmp 0x406b39
lea ecx, [edx - 1]
push eax
push ecx
mov ecx, esi
call fcn.00406f90
cmp al, 2
jae 0x406b4a
mov bl, 1
jmp 0x406b4c
xor bl, bl
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov ebp, dword [esp + 0x14]
mov eax, ebp
push edx
cdq
idiv ecx
mov ecx, esi
push edx
call fcn.00406fb0
cmp al, 1
jbe 0x406b83
mov eax, ebp
push edi
cdq
idiv dword [esi + 4]
mov ecx, esi
push edx
call fcn.00406fd0
cmp al, 2
jae 0x406b83
mov al, 1
jmp 0x406b85
xor al, al
test bl, bl
jne 0x406b9f
neg al
sbb eax, eax
pop edi
and al, 0xfe
pop esi
pop ebp
add eax, 0x77
pop ebx
add esp, 0x144
ret 8
neg al
sbb eax, eax
pop edi
and al, 0x9d
pop esi
pop ebp
add eax, 0x76
pop ebx
add esp, 0x144
ret 8
cmp byte [esp + 0x2c], 2
jne 0x406cfa
cmp al, 2
jne 0x406cfa
mov edx, dword [esp + 0x158]
lea eax, [ecx - 1]
test edx, edx
je 0x406bd9
lea eax, [edx - 1]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edi
cmp byte [eax + esi + 0x1d], 2
jne 0x406c4d
test edi, edi
lea eax, [ecx - 1]
je 0x406bf2
lea eax, [edi - 1]
test edx, edx
jne 0x406bf9
dec ecx
jmp 0x406bfc
lea ecx, [edx - 1]
push eax
push ecx
mov ecx, esi
call fcn.00406f90
cmp al, 2
jne 0x406c4d
mov eax, dword [esp + 0x14]
push edi
cdq
idiv dword [esi + 4]
mov ecx, esi
push edx
call fcn.00406fd0
cmp al, 2
jne 0x406c4d
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, dword [esp + 0x14]
push edx
cdq
idiv ecx
mov ecx, esi
push edx
call fcn.00406fb0
cmp al, 2
jne 0x406c4d
pop edi
pop esi
pop ebp
mov ax, 0x4f
pop ebx
add esp, 0x144
ret 8
mov eax, dword [esp + 0x158]
test eax, eax
jne 0x406c5b
mov eax, dword [esi + 4]
dec eax
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, edi
cmp byte [ecx + esi + 0x1d], 2
jne 0x406ca5
test edi, edi
jne 0x406c75
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406c78
lea ecx, [edi - 1]
mov eax, dword [esp + 0x158]
test eax, eax
jne 0x406c86
mov eax, dword [esi + 4]
dec eax
push ecx
push eax
mov ecx, esi
call fcn.00406f90
cmp al, 2
jne 0x406ca5
pop edi
pop esi
pop ebp
mov ax, 0x8a
pop ebx
add esp, 0x144
ret 8
push edi
mov edi, dword [esp + 0x18]
mov eax, edi
mov ecx, esi
cdq
idiv dword [esi + 4]
push edx
call fcn.00406fd0
cmp al, 2
jne 0x406ce9
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
cdq
idiv ecx
mov eax, edi
push edx
cdq
idiv ecx
mov ecx, esi
push edx
call fcn.00406fb0
cmp al, 2
jne 0x406ce9
pop edi
pop esi
pop ebp
mov ax, 0x8b
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x8d
pop ebx
add esp, 0x144
ret 8
cmp byte [esp + 0x30], 2
jne 0x406e43
cmp byte [esp + 0x28], 2
jne 0x406e43
push edi
push ebp
mov ecx, esi
call fcn.00406f90
cmp al, 2
jne 0x406d94
test edi, edi
jne 0x406d27
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406d2a
lea ecx, [edi - 1]
mov eax, dword [esp + 0x14]
mov ebp, dword [esi + 4]
cdq
idiv ebp
mov ebx, dword [esp + 0x158]
lea edx, [edx + edx*4]
shl edx, 4
add edx, ecx
cmp byte [edx + esi + 0x1d], 2
jne 0x406d9b
test ebx, ebx
jne 0x406d51
dec ebp
jmp 0x406d54
lea ebp, [ebx - 1]
push edi
push ebp
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jne 0x406d9b
test ebx, ebx
jne 0x406d6b
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406d6e
lea ecx, [ebx - 1]
mov eax, dword [esp + 0x18]
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jne 0x406d9b
pop edi
pop esi
pop ebp
mov ax, 0x50
pop ebx
add esp, 0x144
ret 8
mov ebx, dword [esp + 0x158]
mov ebp, dword [esp + 0x14]
push edi
mov eax, ebp
mov ecx, esi
cdq
idiv dword [esi + 4]
push edx
call fcn.00406f90
cmp al, 2
jne 0x406de5
test edi, edi
jne 0x406dbc
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406dbf
lea ecx, [edi - 1]
mov eax, ebp
cdq
idiv dword [esi + 4]
lea eax, [edx + edx*4]
shl eax, 4
add eax, ecx
cmp byte [eax + esi + 0x1d], 2
jne 0x406de5
pop edi
pop esi
pop ebp
mov ax, 0x8e
pop ebx
add esp, 0x144
ret 8
test ebx, ebx
jne 0x406def
mov eax, dword [esi + 4]
dec eax
jmp 0x406df2
lea eax, [ebx - 1]
push edi
push eax
mov ecx, esi
call fcn.00406fb0
cmp al, 2
jne 0x406e32
test ebx, ebx
jne 0x406e09
mov ecx, dword [esi + 4]
dec ecx
jmp 0x406e0c
lea ecx, [ebx - 1]
mov eax, dword [esp + 0x18]
cdq
idiv dword [esi + 4]
push edx
push ecx
mov ecx, esi
call fcn.00406fd0
cmp al, 2
jne 0x406e32
pop edi
pop esi
pop ebp
mov ax, 0x90
pop ebx
add esp, 0x144
ret 8
pop edi
pop esi
pop ebp
mov ax, 0x91
pop ebx
add esp, 0x144
ret 8
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ecx
mov edi, str.illegal_corner_height_arrangement
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x4c]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x4157c0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x22
lea esi, [esp + 0x48]
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x48]
push ecx
call fcn.0040b2f1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov edx, ecx
mov ecx, dword [esp + 8]
push ebx
push esi
push edi
mov edi, dword [esp + 0x18]
mov dword [edx], eax
mov dword [edx + 4], ecx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [edx + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
ret 0xc