Function at 0x40a330
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e8
push ebx
push esi
push edi
mov eax, dword [ebp + 0x18]
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
add edx, 1
mov esi, dword [ebp + 0x14]
mov dword [esi], edx
cmp eax, ecx
jb 0x40a368
mov eax, 0xfffffff8
jmp 0x40cef0
mov eax, dword [ebp + 0x20]
and eax, 2
test eax, eax
je 0x40a384
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
lea eax, [ebp - 0x10]
mov dword [ebp + 0x1c], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x14], 0x4c
jle 0x40a4e2
mov eax, dword [ebp - 0x14]
sub eax, 0x4c
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x96
jle 0x40a3c9
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 4]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 5]
or edx, ecx
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x34]
shl edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [eax + 0x10]
jge 0x40a4db
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x30]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x30]
mov eax, dword [ecx + edx*4 + 4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
sub edx, dword [ebp - 0x34]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
sub eax, dword [edx + 0x38]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
sub edx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 8]
mov dword [ecx + edx*4], eax
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40a46e
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x44]
mov dword [edx + 0x4c], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp + 0xc]
add eax, edx
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x3d
je 0x40a438
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
mov dword [edx + eax*4 + 4], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
sub eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp - 0x40]
mov dword [edx + eax*4], ecx
xor eax, eax
jmp 0x40cef0
mov dword [ebp - 0x14], 0x4c
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x168], edx
cmp dword [ebp - 0x168], 0x4c
ja case.0x40a506.43
mov ecx, dword [ebp - 0x168]
xor eax, eax
mov al, byte [ecx + 0x40cfa7]
jmp dword [eax*4 + 0x40cef7]
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40a543
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x3d
je case.0x40a506.42
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 3]
cmp edx, 0x48
jne 0x40a65a
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 5]
or ecx, eax
shl ecx, 1
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x48], 0x1fffe
jne 0x40a5bb
mov ecx, dword [ebp + 0x14]
xor edx, edx
cmp dword [ecx + 0x54], 0
setne dl
mov dword [ebp - 0x16c], edx
jmp 0x40a5f4
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x10]
jge 0x40a5de
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x48]
cmp dword [edx + eax*4], 0
jl 0x40a5de
mov dword [ebp - 0x170], 1
jmp 0x40a5e8
mov dword [ebp - 0x170], 0
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x4c], 0
je 0x40a60f
mov dword [ebp - 0x174], 6
jmp 0x40a62d
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
add ecx, 3
mov dword [ebp - 0x174], ecx
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x174]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040a330
add esp, 0x1c
jmp 0x40cef0
push 3
push 0
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jne 0x40a6d2
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 5]
or ecx, eax
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx + 3]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x3d
jne 0x40a6d0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
jmp 0x40a6a5
jmp 0x40a6fd
cmp dword [ebp - 8], 0
je 0x40a6e0
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x54], 0
je 0x40a79f
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x54]
cmp dword [eax + 4], 0
jne 0x40a79f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x54]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x14]
shl ecx, 2
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
push edx
call dword [0x456e1c]
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 4]
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 8]
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x30], 0
je 0x40a7ba
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x40]
jne 0x40a7ba
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x44], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x48], eax
mov eax, 1
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0xc]
add eax, 2
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
push 2
push 0
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jne 0x40a81d
jmp 0x40a854
cmp dword [ebp - 8], 0
je 0x40a82b
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
je case.0x40a506.34
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x3e
jne 0x40a867
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0x20]
and ecx, 1
test ecx, ecx
je 0x40a87b
mov eax, 1
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x3d
je 0x40a87b
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x48]
mov dword [ebp + 0x10], eax
jmp 0x40a384
push 2
push 0
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jne 0x40a8ee
xor eax, eax
jmp 0x40cef0
cmp dword [ebp - 8], 0
je 0x40a8fc
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
je case.0x40a506.35
mov edx, dword [ebp + 0x20]
and edx, 1
test edx, edx
je 0x40a939
mov eax, 1
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40a384
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov eax, dword [ebp + 8]
sub eax, edx
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x38]
jae 0x40a976
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
cmp dword [0x454c18], 0
je 0x40aa27
mov dword [ebp - 0x78], 0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
mov dword [ebp - 0x74], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x3c]
sub eax, dword [edx + 0x38]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x40]
sub eax, dword [edx + 0x38]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
sub edx, dword [ecx + 0x38]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x58]
mov dword [ebp - 0x54], eax
lea ecx, [ebp - 0x78]
push ecx
call dword [0x454c18]
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jle 0x40aa19
xor eax, eax
jmp 0x40cef0
cmp dword [ebp - 8], 0
jge 0x40aa27
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x34]
add eax, ecx
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x10c]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x49
jne 0x40aa76
mov eax, dword [ebp - 0x10c]
add eax, 1
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x10c]
xor edx, edx
mov dl, byte [ecx]
sub edx, 0x4c
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0x96
jle 0x40aab6
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
mov cl, byte [eax + 4]
shl ecx, 8
mov edx, dword [ebp - 0x10c]
xor eax, eax
mov al, byte [edx + 5]
or ecx, eax
mov dword [ebp - 0x104], ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x54]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x108]
mov dword [eax + 0x54], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xf4], edx
cmp dword [ebp - 0xf4], 0x1e
jg 0x40ab03
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xf8], eax
jmp 0x40ab2f
mov ecx, dword [ebp - 0xf4]
shl ecx, 2
push ecx
call dword [0x451c20]
add esp, 4
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0
jne 0x40ab2f
mov eax, 0xfffffffa
jmp 0x40cef0
mov edx, dword [ebp - 0xf4]
shl edx, 2
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
call fcn.0042bec8
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov dword [edx + 0x40], eax
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x10c]
add edx, 3
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jne 0x40abcb
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x108]
mov dword [ecx + 0x54], edx
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0xf0]
cmp eax, ecx
je 0x40abc1
mov edx, dword [ebp - 0xf8]
push edx
call dword [0x451c24]
add esp, 4
mov eax, 1
jmp 0x40cef0
cmp dword [ebp - 8], 0
je 0x40abd9
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x108]
mov dword [eax + 0x54], ecx
mov edx, dword [ebp - 0xf4]
shl edx, 2
push edx
mov eax, dword [ebp - 0xf8]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
push edx
call fcn.0042bec8
add esp, 0xc
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp - 0x10c]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp - 0x10c]
add edx, ecx
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
je 0x40ab64
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x108]
mov dword [edx + 0x54], eax
mov ecx, dword [ebp - 0xf8]
lea edx, [ebp - 0xf0]
cmp ecx, edx
je 0x40ac6d
mov eax, dword [ebp - 0xf8]
push eax
call dword [0x451c24]
add esp, 4
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x114], edx
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jne 0x40acb6
jmp 0x40aced
cmp dword [ebp - 8], 0
je 0x40acc4
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
je 0x40ac86
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x46
je 0x40ad0c
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x3d
je 0x40ad0c
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
add edx, ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
je 0x40ad0c
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x48]
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x44]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3e
je 0x40ad5e
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x114]
jne 0x40ad6c
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 3]
cmp edx, 0xf
jne 0x40ad8b
mov eax, dword [ebp + 0x18]
and al, 0xf8
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 4]
or eax, edx
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x40
jne 0x40ae05
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40adcd
mov eax, dword [ebp - 8]
jmp 0x40cef0
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x110]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40ae03
mov eax, dword [ebp - 8]
jmp 0x40cef0
jmp 0x40ae71
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x110]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40ae3b
mov eax, dword [ebp - 8]
jmp 0x40cef0
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40ae71
mov eax, dword [ebp - 8]
jmp 0x40cef0
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x3d
je case.0x40a506.32
jmp 0x40ceeb
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp - 0x118], ecx
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x118]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40aee8
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp - 0x118]
xor eax, eax
mov al, byte [edx + 1]
shl eax, 8
mov ecx, dword [ebp - 0x118]
xor edx, edx
mov dl, byte [ecx + 2]
or eax, edx
mov ecx, dword [ebp - 0x118]
add ecx, eax
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x118]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x3d
je 0x40aee8
mov ecx, dword [ebp - 0x118]
add ecx, 3
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x11c]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp - 0x11c]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp - 0x11c]
add edx, ecx
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x11c]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
je 0x40af3d
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x11c]
add eax, 3
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40afae
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov edx, dword [ebp + 0xc]
sub edx, ecx
mov dword [ebp - 0x120], edx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
mov dword [ebp + 0x1c], eax
mov ecx, dword [ebp - 0x120]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x41
je 0x40b03b
mov eax, dword [ebp - 0x120]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x42
je 0x40b03b
mov edx, dword [ebp - 0x120]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x43
je 0x40b03b
mov ecx, dword [ebp - 0x120]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x44
je 0x40b03b
mov eax, dword [ebp - 0x120]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x46
jne 0x40b057
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov dword [edx + 0x44], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov dword [ecx + 0x48], edx
mov eax, 1
jmp 0x40cef0
mov eax, dword [ebp - 0x120]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x47
je 0x40b1bf
mov edx, dword [ebp - 0x120]
xor eax, eax
mov al, byte [edx]
sub eax, 0x4c
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0x96
jle 0x40b0aa
mov ecx, dword [ebp - 0x120]
xor edx, edx
mov dl, byte [ecx + 4]
shl edx, 8
mov eax, dword [ebp - 0x120]
xor ecx, ecx
mov cl, byte [eax + 5]
or edx, ecx
mov dword [ebp - 0x12c], edx
mov edx, dword [ebp - 0x12c]
shl edx, 1
mov dword [ebp - 0x128], edx
cmp dword [ebp - 0x12c], 0
jle 0x40b1bf
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x12c]
mov dword [eax + 0x4c], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x128]
cmp eax, dword [edx + 0x10]
jl 0x40b0eb
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], 1
jmp 0x40b13f
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
sub eax, dword [ebp - 0x12c]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 8]
mov esi, dword [ebp - 0x128]
mov edx, dword [edx + eax*4]
mov dword [ecx + esi*4], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
sub ecx, dword [eax + 0x38]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x128]
mov dword [eax + edx*4 + 4], ecx
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x128]
jg 0x40b13f
mov ecx, dword [ebp - 0x128]
add ecx, 2
mov dword [ebp + 0x10], ecx
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x54], 0
je 0x40b1bf
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x54]
mov edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x12c]
jne 0x40b1bf
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax]
mov dword [edx + 0x54], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + 0xc]
mov dword [edx + 0x40], ecx
mov edx, dword [ebp - 0x130]
mov eax, dword [edx + 0x14]
shl eax, 2
push eax
mov ecx, dword [ebp - 0x130]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
push ecx
call fcn.0042bec8
add esp, 0xc
mov edx, dword [ebp - 0x130]
mov eax, dword [edx + 8]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x18], ecx
jmp 0x40ceeb
mov edx, dword [ebp - 4]
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3e
je 0x40b1dc
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x124]
jne 0x40b1ea
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x40
jne 0x40b264
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40b22c
mov eax, dword [ebp - 8]
jmp 0x40cef0
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40b262
mov eax, dword [ebp - 8]
jmp 0x40cef0
jmp 0x40b2d0
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40b29a
mov eax, dword [ebp - 8]
jmp 0x40cef0
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40b2d0
mov eax, dword [ebp - 8]
jmp 0x40cef0
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x20], 0
je 0x40b2f2
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x38]
jne 0x40b2f2
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0x18]
and eax, 2
test eax, eax
je case.0x40a506.1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x38]
je 0x40b31b
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax - 1]
cmp ecx, 0xa
je 0x40b31b
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x38]
je 0x40b33b
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 0x14]
add ecx, dword [edx + 0x50]
cmp dword [ebp + 8], ecx
je 0x40b361
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0x18]
and ecx, 2
test ecx, ecx
je 0x40b3b7
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40b399
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0xa
je 0x40b397
xor eax, eax
jmp 0x40cef0
jmp 0x40b3a9
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x24], 0
je 0x40b3a9
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x24], 0
je 0x40b3c7
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x2c], 0
jne case.0x40a506.13
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x3c]
sub edx, 1
cmp dword [ebp + 8], edx
jb 0x40b3f8
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x3c]
sub ecx, 1
cmp dword [ebp + 8], ecx
jne 0x40b3ff
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
cmp eax, 0xa
je 0x40b3ff
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40b41f
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x3c]
sub eax, 1
cmp dword [ebp + 8], eax
jb 0x40b455
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x3c]
sub edx, 1
cmp dword [ebp + 8], edx
jne 0x40b45c
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0xa
je 0x40b45c
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x38]
je 0x40b49b
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx - 1]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x18]
xor ecx, ecx
mov cl, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x40b49b
mov dword [ebp - 0x178], 1
jmp 0x40b4a5
mov dword [ebp - 0x178], 0
mov edx, dword [ebp - 0x178]
mov dword [ebp - 0x134], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x3c]
jae 0x40b4e1
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x18]
xor ecx, ecx
mov cl, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x40b4e1
mov dword [ebp - 0x17c], 1
jmp 0x40b4eb
mov dword [ebp - 0x17c], 0
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp ecx, 4
jne 0x40b525
mov eax, dword [ebp - 0x138]
xor ecx, ecx
cmp eax, dword [ebp - 0x134]
sete cl
mov dword [ebp - 0x180], ecx
jmp 0x40b53c
mov edx, dword [ebp - 0x138]
xor eax, eax
cmp edx, dword [ebp - 0x134]
setne al
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
je 0x40b54c
xor eax, eax
jmp 0x40cef0
jmp 0x40ceeb
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne 0x40b579
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40b579
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0xa
jne 0x40b579
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp ecx, edx
jb 0x40b596
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp eax, ecx
jb 0x40b5c1
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jb 0x40b5e1
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
mov edx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 4
test eax, eax
je 0x40b610
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jb 0x40b630
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov cl, byte [edx + eax]
and ecx, 4
test ecx, ecx
jne 0x40b65f
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x3c]
jb 0x40b67f
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 1
test edx, edx
je 0x40b6ae
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jb 0x40b6ce
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
mov edx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 1
test eax, eax
jne 0x40b6fd
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
jmp 0x40ceeb
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jb 0x40b71d
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov cl, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x40b74c
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
jmp 0x40ceeb
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x3c]
jb 0x40b76c
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 0x10
test edx, edx
jne 0x40b79b
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
jmp 0x40ceeb
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
shl edx, 1
mov dword [ebp - 0x140], edx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x140]
cmp eax, dword [ebp + 0x10]
jge 0x40b813
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x140]
cmp dword [edx + eax*4], 0
jl 0x40b813
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x140]
mov esi, dword [ebp - 0x140]
mov edx, dword [edx + eax*4 + 4]
sub edx, dword [ecx + esi*4]
mov dword [ebp - 0x184], edx
jmp 0x40b825
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x3c]
sub ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebp - 0x188], ecx
mov edx, dword [ebp - 0x188]
sub edx, 0x2f
mov dword [ebp - 0x188], edx
cmp dword [ebp - 0x188], 7
ja case.default.0x40b868
mov ecx, dword [ebp - 0x188]
xor eax, eax
mov al, byte [ecx + 0x40cffc]
jmp dword [eax*4 + 0x40cff4]
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
sub eax, 0x2f
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 0x28]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax + 0x44a01c]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx + 0x44a024]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x40b8bb
mov dword [ebp - 0x1c], 0x7fffffff
jmp 0x40b958
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
xor eax, eax
cmp edx, 0x36
sete al
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 3]
shl eax, 8
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 4]
or eax, edx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x40b90f
mov dword [ebp - 0x1c], 0x7fffffff
mov eax, dword [ebp + 0xc]
add eax, 5
mov dword [ebp + 0xc], eax
jmp 0x40b958
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x140]
push edx
call fcn.0040dbc0
add esp, 0x14
test eax, eax
jne 0x40b947
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x13c]
mov dword [ebp + 8], eax
jmp 0x40a384
cmp dword [ebp - 0x13c], 0
jne 0x40b966
jmp 0x40a384
mov dword [ebp - 0x24], 1
jmp 0x40b978
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x18]
jg 0x40b9bb
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 0x13c]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x140]
push ecx
call fcn.0040dbc0
add esp, 0x14
test eax, eax
jne 0x40b9ad
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x13c]
mov dword [ebp + 8], edx
jmp 0x40b96f
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x40b9c8
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40ba59
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40b9e3
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40ba16
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40ba44
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x140]
push edx
call fcn.0040dbc0
add esp, 0x14
test eax, eax
jne 0x40ba4b
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x13c]
mov dword [ebp + 8], eax
jmp 0x40b9da
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x144], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40ba73
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40bab1
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 0x13c]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x140]
push eax
call fcn.0040dbc0
add esp, 0x14
test eax, eax
jne 0x40baa3
jmp 0x40bab1
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x13c]
mov dword [ebp + 8], ecx
jmp 0x40ba6a
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x144]
jb 0x40bafd
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40baef
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x13c]
mov dword [ebp + 8], eax
jmp 0x40bab1
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp + 0xc]
add edx, 0x21
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x18c]
sub edx, 0x2f
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 7
ja case.default.0x40bb50
mov ecx, dword [ebp - 0x18c]
xor eax, eax
mov al, byte [ecx + 0x40d00c]
jmp dword [eax*4 + 0x40d004]
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
sub eax, 0x2f
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 0x28]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax + 0x44a01c]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx + 0x44a024]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x40bba3
mov dword [ebp - 0x1c], 0x7fffffff
jmp 0x40bc0c
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
xor eax, eax
cmp edx, 0x36
sete al
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 3]
shl eax, 8
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 4]
or eax, edx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x40bbf4
mov dword [ebp - 0x1c], 0x7fffffff
mov eax, dword [ebp + 0xc]
add eax, 5
mov dword [ebp + 0xc], eax
jmp 0x40bc0c
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], 1
jmp 0x40bc1e
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg 0x40bc7e
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jb 0x40bc38
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x28]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x148]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x40bc7c
xor eax, eax
jmp 0x40cef0
jmp 0x40bc15
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1c]
jne 0x40bc8b
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40bd3c
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40bca6
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40bcd9
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40bcec
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jb 0x40bcf3
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x28]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x148]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x40bd37
xor eax, eax
jmp 0x40cef0
jmp 0x40bc9d
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40bd56
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40bdac
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jb 0x40bd6b
jmp 0x40bdac
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x148]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jne 0x40bda1
jmp 0x40bdac
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40bd4d
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x14c]
jb 0x40be01
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x190], edx
mov eax, dword [ebp - 0x190]
push eax
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40bdff
mov eax, dword [ebp - 8]
jmp 0x40cef0
jmp 0x40bdac
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 1]
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp + 0xc]
add ecx, 2
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x3c]
sub eax, dword [ebp + 8]
cmp dword [ebp - 0x150], eax
jle 0x40be37
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0x18]
and ecx, 1
test ecx, ecx
je 0x40be9f
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
sub eax, 1
mov dword [ebp - 0x150], eax
test edx, edx
jle 0x40be9d
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
xor eax, eax
mov al, byte [ecx + edx]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 0x14]
xor ebx, ebx
mov bl, byte [ecx + edx]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
cmp eax, ebx
je 0x40be9b
xor eax, eax
jmp 0x40cef0
jmp 0x40be41
jmp 0x40bee5
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
sub eax, 1
mov dword [ebp - 0x150], eax
test edx, edx
jle 0x40bee5
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp edx, ecx
je 0x40bee3
xor eax, eax
jmp 0x40cef0
jmp 0x40be9f
jmp 0x40ceeb
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40bf9e
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
xor ecx, ecx
cmp eax, 0x1b
sete cl
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40bf9e
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
sub ecx, 0x14
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x28]
and eax, 1
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x28]
movsx edx, byte [ecx + 0x44a01c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax + 0x44a024]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0
jne 0x40bf9e
mov dword [ebp - 0x1c], 0x7fffffff
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x3c]
sub eax, dword [ebp + 8]
cmp dword [ebp - 0x18], eax
jle 0x40bfb3
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0x18]
and ecx, 1
test ecx, ecx
je 0x40c170
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], 1
jmp 0x40bff7
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x18]
jg 0x40c02a
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x14]
xor ecx, ecx
mov cl, byte [edx + eax]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
je 0x40c028
xor eax, eax
jmp 0x40cef0
jmp 0x40bfee
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1c]
jne 0x40c037
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40c0c3
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40c052
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c085
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40c0ba
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40c0ba
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
xor eax, eax
mov al, byte [ecx + edx]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp ecx, eax
je 0x40c0c1
xor eax, eax
jmp 0x40cef0
jmp 0x40c049
mov eax, dword [ebp + 8]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40c0dd
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40c114
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40c107
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x14]
xor edx, edx
mov dl, byte [eax + ecx]
cmp dword [ebp - 0x28], edx
je 0x40c109
jmp 0x40c114
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40c0d4
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x154]
jb 0x40c169
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x194]
push edx
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c167
mov eax, dword [ebp - 8]
jmp 0x40cef0
jmp 0x40c114
xor eax, eax
jmp 0x40cef0
mov dword [ebp - 0x24], 1
jmp 0x40c182
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x18]
jg 0x40c1aa
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
je 0x40c1a8
xor eax, eax
jmp 0x40cef0
jmp 0x40c179
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1c]
jne 0x40c1b7
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40c234
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40c1ce
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c201
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40c22b
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40c22b
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
cmp eax, edx
je 0x40c232
xor eax, eax
jmp 0x40cef0
jmp 0x40c1c5
mov edx, dword [ebp + 8]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
jmp 0x40c24e
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x1c]
jge 0x40c27a
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x3c]
jae 0x40c26d
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
cmp dword [ebp - 0x28], eax
je 0x40c26f
jmp 0x40c27a
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x40c245
mov edx, dword [ebp + 8]
cmp edx, dword [ebp - 0x158]
jb 0x40c2cf
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x198]
push eax
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [ebp + 8], ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c2cd
mov eax, dword [ebp - 8]
jmp 0x40cef0
jmp 0x40c27a
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jb 0x40c2e8
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0x18]
and edx, 1
test edx, edx
je 0x40c34a
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
xor eax, eax
mov al, byte [ecx + edx]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
cmp eax, ecx
jne 0x40c348
xor eax, eax
jmp 0x40cef0
jmp 0x40c368
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
cmp ecx, edx
jne 0x40c368
xor eax, eax
jmp 0x40cef0
jmp 0x40ceeb
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0xc]
add eax, 3
mov dword [ebp + 0xc], eax
jmp 0x40c421
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx + 1]
shl edx, 8
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
xor ecx, ecx
cmp eax, 0x24
sete cl
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40c421
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
sub ecx, 0x1d
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 0xc]
add edx, 1
mov dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x28]
and eax, 1
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x28]
movsx edx, byte [ecx + 0x44a01c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax + 0x44a024]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0
jne 0x40c421
mov dword [ebp - 0x1c], 0x7fffffff
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x3c]
sub eax, dword [ebp + 8]
cmp dword [ebp - 0x18], eax
jle 0x40c436
xor eax, eax
jmp 0x40cef0
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0x18]
and ecx, 1
test ecx, ecx
je 0x40c5e7
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], 1
jmp 0x40c47a
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x18]
jg 0x40c4ad
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x14]
xor ecx, ecx
mov cl, byte [edx + eax]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
jne 0x40c4ab
xor eax, eax
jmp 0x40cef0
jmp 0x40c471
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1c]
jne 0x40c4ba
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40c546
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40c4d5
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c508
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40c53d
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40c53d
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x14]
xor eax, eax
mov al, byte [ecx + edx]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp ecx, eax
jne 0x40c544
xor eax, eax
jmp 0x40cef0
jmp 0x40c4cc
mov eax, dword [ebp + 8]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40c560
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40c597
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40c58a
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x14]
xor edx, edx
mov dl, byte [eax + ecx]
cmp dword [ebp - 0x28], edx
jne 0x40c58c
jmp 0x40c597
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40c557
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x15c]
jb 0x40c5e0
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c5d5
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x40c597
xor eax, eax
jmp 0x40cef0
mov dword [ebp - 0x24], 1
jmp 0x40c5f9
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x18]
jg 0x40c621
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp ecx, eax
jne 0x40c61f
xor eax, eax
jmp 0x40cef0
jmp 0x40c5f0
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jne 0x40c62e
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40c6ab
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40c645
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c678
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40c6a2
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40c6a2
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
cmp edx, ecx
jne 0x40c6a9
xor eax, eax
jmp 0x40cef0
jmp 0x40c63c
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40c6c5
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40c6f1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40c6e4
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
cmp dword [ebp - 0x28], edx
jne 0x40c6e6
jmp 0x40c6f1
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40c6bc
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x160]
jb 0x40c73a
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40c72f
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp + 8]
sub edx, 1
mov dword [ebp + 8], edx
jmp 0x40c6f1
xor eax, eax
jmp 0x40cef0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x2c], 1
mov edx, dword [ebp + 0xc]
add edx, 3
mov dword [ebp + 0xc], edx
jmp 0x40c7fc
mov dword [ebp - 0x18], 0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx + 2]
or ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
xor eax, eax
cmp edx, 0x2d
sete al
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0xc]
add ecx, 3
mov dword [ebp + 0xc], ecx
jmp 0x40c7fc
mov edx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [edx]
sub eax, 0x26
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
add ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 0x28]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax + 0x44a01c]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx + 0x44a024]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x40c7fc
mov dword [ebp - 0x1c], 0x7fffffff
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dl, byte [ecx]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x3c]
sub edx, dword [ebp + 8]
cmp dword [ebp - 0x18], edx
jle 0x40c824
xor eax, eax
jmp 0x40cef0
cmp dword [ebp - 0x18], 0
jle case.default.0x40c859
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x19c]
sub ecx, 5
mov dword [ebp - 0x19c], ecx
cmp dword [ebp - 0x19c], 7
ja case.default.0x40c859
mov edx, dword [ebp - 0x19c]
jmp dword [edx*4 + 0x40d014]
mov eax, dword [ebp + 0x18]
and eax, 4
test eax, eax
jne 0x40c8a4
mov dword [ebp - 0x24], 1
jmp 0x40c87c
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x18]
jg 0x40c8a2
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
cmp ecx, 0xa
jne 0x40c8a0
xor eax, eax
jmp 0x40cef0
jmp 0x40c873
jmp 0x40c8ad
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x18]
mov dword [ebp + 8], eax
jmp case.default.0x40c859
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x18]
mov dword [ebp + 8], ecx
jmp case.default.0x40c859
mov dword [ebp - 0x24], 1
jmp 0x40c8d2
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg 0x40c905
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 4
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
je 0x40c903
xor eax, eax
jmp 0x40cef0
jmp 0x40c8c9
jmp case.default.0x40c859
mov dword [ebp - 0x24], 1
jmp 0x40c91c
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg 0x40c94f
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 4
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
jne 0x40c94d
xor eax, eax
jmp 0x40cef0
jmp 0x40c913
jmp case.default.0x40c859
mov dword [ebp - 0x24], 1
jmp 0x40c966
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg 0x40c999
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 1
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
je 0x40c997
xor eax, eax
jmp 0x40cef0
jmp 0x40c95d
jmp case.default.0x40c859
mov dword [ebp - 0x24], 1
jmp 0x40c9b0
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg 0x40c9e3
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 1
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
jne 0x40c9e1
xor eax, eax
jmp 0x40cef0
jmp 0x40c9a7
jmp case.default.0x40c859
mov dword [ebp - 0x24], 1
jmp 0x40c9fa
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg 0x40ca2d
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 0x10
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
je 0x40ca2b
xor eax, eax
jmp 0x40cef0
jmp 0x40c9f1
jmp case.default.0x40c859
mov dword [ebp - 0x24], 1
jmp 0x40ca41
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x18]
jg case.default.0x40c859
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 0x10
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
test eax, eax
jne 0x40ca72
xor eax, eax
jmp 0x40cef0
jmp 0x40ca38
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x1c]
jne 0x40ca81
jmp 0x40a384
cmp dword [ebp - 0x2c], 0
je 0x40cc04
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
jmp 0x40ca9c
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40cacf
mov eax, dword [ebp - 8]
jmp 0x40cef0
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x1c]
jge 0x40cae2
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x3c]
jb 0x40cae9
xor eax, eax
jmp 0x40cef0
mov edx, dword [ebp + 8]
xor eax, eax
mov al, byte [edx]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x1a0]
sub eax, 5
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 6
ja case.default.0x40cb27
mov ecx, dword [ebp - 0x1a0]
jmp dword [ecx*4 + 0x40d034]
mov edx, dword [ebp + 0x18]
and edx, 4
test edx, edx
jne 0x40cb45
cmp dword [ebp - 0x28], 0xa
jne 0x40cb45
xor eax, eax
jmp 0x40cef0
jmp case.default.0x40cb27
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
mov edx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 4
test eax, eax
je 0x40cb66
xor eax, eax
jmp 0x40cef0
jmp case.default.0x40cb27
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov cl, byte [edx + eax]
and ecx, 4
test ecx, ecx
jne 0x40cb87
xor eax, eax
jmp 0x40cef0
jmp case.default.0x40cb27
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 1
test edx, edx
je 0x40cba5
xor eax, eax
jmp 0x40cef0
jmp case.default.0x40cb27
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x18]
mov edx, dword [ebp - 0x28]
xor eax, eax
mov al, byte [ecx + edx]
and eax, 1
test eax, eax
jne 0x40cbc3
xor eax, eax
jmp 0x40cef0
jmp case.default.0x40cb27
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov cl, byte [edx + eax]
and ecx, 0x10
test ecx, ecx
je 0x40cbe1
xor eax, eax
jmp 0x40cef0
jmp case.default.0x40cb27
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 0x10
test edx, edx
jne case.default.0x40cb27
xor eax, eax
jmp 0x40cef0
jmp 0x40ca93
mov eax, dword [ebp + 8]
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp - 0x1a4]
sub edx, 5
mov dword [ebp - 0x1a4], edx
cmp dword [ebp - 0x1a4], 7
ja case.default.0x40cc38
mov eax, dword [ebp - 0x1a4]
jmp dword [eax*4 + 0x40d050]
mov ecx, dword [ebp + 0x18]
and ecx, 4
test ecx, ecx
jne case.0x40cc38.7
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
jmp 0x40cc5a
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
jge 0x40cc86
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x3c]
jae 0x40cc79
mov ecx, dword [ebp + 8]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0xa
jne 0x40cc7b
jmp 0x40cc86
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40cc51
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x3c]
sub eax, dword [ebp + 8]
cmp dword [ebp - 0x28], eax
jle 0x40ccae
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x3c]
sub edx, dword [ebp + 8]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x28]
mov dword [ebp + 8], eax
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40cccd
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40cd06
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40ccf9
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 4
test edx, edx
je 0x40ccfb
jmp 0x40cd06
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40ccc4
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40cd1c
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40cd55
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40cd48
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 4
test edx, edx
jne 0x40cd4a
jmp 0x40cd55
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40cd13
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40cd6b
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40cda4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40cd97
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 1
test edx, edx
je 0x40cd99
jmp 0x40cda4
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40cd62
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40cdba
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40cdf3
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40cde6
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 1
test edx, edx
jne 0x40cde8
jmp 0x40cdf3
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40cdb1
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40ce09
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x40ce42
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40ce35
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 0x10
test edx, edx
je 0x40ce37
jmp 0x40ce42
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40ce00
jmp case.default.0x40cc38
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
jmp 0x40ce55
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge case.default.0x40cc38
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x3c]
jae 0x40ce81
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x18]
xor edx, edx
mov dl, byte [eax + ecx]
and edx, 0x10
test edx, edx
jne 0x40ce83
jmp case.default.0x40cc38
mov eax, dword [ebp + 8]
add eax, 1
mov dword [ebp + 8], eax
jmp 0x40ce4c
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x164]
jb 0x40cee0
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x1a8], ecx
mov edx, dword [ebp - 0x1a8]
push edx
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp + 8], eax
call fcn.0040a330
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40cede
mov eax, dword [ebp - 8]
jmp 0x40cef0
jmp case.default.0x40cc38
xor eax, eax
jmp 0x40cef0
mov eax, 0xfffffffb
jmp 0x40cef0
jmp 0x40a384
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret