Function at 0x45e265
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x261c
call fcn.004ad610
mov eax, dword [0x4f8004]
xor eax, esp
mov dword [esp + 0x2618], eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x63c]
push ebx
push esi
push edi
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x18]
push eax
call fcn.0042a909
or dword [esp + 0x248], 0xffffffff
lea ecx, [esp + 0x238]
xor ebx, ebx
push str.elsif_if_split_while
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x240], ebx
mov dword [esp + 0x244], ebx
mov byte [esp + 0x248], bl
call fcn.00478fa2
push ebx
push ecx
push str.rwxoRWXOezsfdlpSbctugkTBMAC
push ebx
lea ecx, [esp + 0x12c]
call fcn.0042cf74
push ebx
push ecx
push str._____:_____.
push ebx
lea ecx, [esp + 0x120]
call fcn.0042cf74
push ebx
push ecx
push str.qrwx
push ebx
lea ecx, [esp + 0x114]
call fcn.0042cf74
push ebx
push ecx
push 0x4c1e25
push 3
pop edi
push edi
lea ecx, [esp + 0x9c]
call fcn.0042cf74
push ebx
push ecx
push 0x4f07d0
push ebx
lea ecx, [esp + 0x108]
call fcn.0042cf74
xor eax, eax
inc eax
push eax
push ecx
push 0x4f07d8
push 7
lea ecx, [esp + 0xfc]
call fcn.0042cf74
xor esi, esi
inc esi
push esi
push ecx
push 0x4f07e0
push edi
lea ecx, [esp + 0xf0]
call fcn.0042cf74
push esi
push ecx
push 0x4f07e8
push edi
lea ecx, [esp + 0xe4]
call fcn.0042cf74
push ebx
push ecx
push 0x4f07f0
push 4
lea ecx, [esp + 0xd8]
call fcn.0042cf74
push ebx
push ecx
push 0x4ec700
push 7
lea ecx, [esp + 0xb4]
call fcn.0042cf74
push ebx
push ecx
push str._________t
push ebx
lea ecx, [esp + 0xa8]
call fcn.0042cf74
push ebx
push ecx
push 0x4f0804
push 4
lea ecx, [esp + 0xcc]
call fcn.0042cf74
push ebx
push ecx
push 0x4f0808
push edi
lea ecx, [esp + 0xc0]
call fcn.0042cf74
mov edi, dword [ebp + 0xc]
mov eax, ebx
movaps xmm0, xmmword [0x4f2710]
mov esi, dword [ebp + 0x14]
push 5
mov dword [esp + 0x12c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x138], eax
pop eax
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0x10]
push 0x29
add eax, edi
mov dword [esp + 0x130], ebx
pop ecx
push 0x17
mov dword [esp + 0x14], eax
pop eax
mov byte [esp + 0x130], bl
mov byte [esp + 0x138], bl
mov dword [esp + 0x84], ebx
movups xmmword [esp + 0x60], xmm0
cmp esi, eax
je 0x45e45a
cmp esi, 0x18
je 0x45e45a
cmp esi, 0x19
je 0x45e45a
cmp esi, 0x2a
je 0x45e45a
cmp esi, 0x3d
je 0x45e45a
cmp esi, 0x3e
jne 0x45e4b6
cmp esi, 0x2a
push 0x16
pop ebx
cmove ebx, ecx
xor esi, esi
inc esi
jmp 0x45e47e
mov eax, dword [esp + 0x648]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
movsx eax, al
cmp eax, ebx
je 0x45e482
dec edi
cmp edi, esi
ja 0x45e468
mov eax, dword [esp + 0x648]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov ecx, dword [esp + 0x648]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x18]
mov edx, dword [esp + 0x648]
mov edi, eax
mov esi, dword [edx]
lea ecx, [edi - 1]
push ecx
push edx
call dword [esi + 0x10]
movsx esi, al
xor ebx, ebx
push 0xb
pop eax
cmp esi, 6
je 0x45e630
cmp esi, 0x1b
je 0x45e630
cmp esi, 0x14
je 0x45e630
cmp esi, 0x1c
je 0x45e630
cmp esi, 0x11
je 0x45e630
cmp esi, 0x1d
je 0x45e630
cmp esi, 0x12
je 0x45e630
cmp esi, 0x2b
je 0x45e630
cmp esi, 0x40
je 0x45e630
cmp esi, 0x39
je 0x45e630
cmp esi, 0x41
je 0x45e630
cmp esi, 0x36
je 0x45e630
cmp esi, 0x42
je 0x45e630
cmp esi, 0x37
je 0x45e630
cmp esi, 0x1a
je 0x45e629
cmp esi, 0x1e
je 0x45e629
cmp esi, 0x2c
je 0x45e629
cmp esi, 7
je 0x45e629
cmp esi, 4
je 0x45e629
cmp esi, eax
je 0x45e629
cmp esi, 1
je 0x45e629
cmp esi, 0x28
je 0x45e629
cmp esi, 3
je 0x45e58c
cmp esi, 0x1f
jne 0x45e668
mov eax, dword [esp + 0x648]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
jle 0x45e60c
mov ecx, dword [esp + 0x648]
dec esi
push esi
push ecx
mov edx, dword [ecx]
call dword [edx + 0x18]
mov ecx, dword [esp + 0x648]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x10]
movsx eax, al
cmp eax, 3
je 0x45e5df
cmp eax, 0x1f
jne 0x45e5e3
jmp 0x45e5df
mov eax, dword [esp + 0x648]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
test eax, eax
jne 0x45e5e3
dec esi
test esi, esi
jg 0x45e5cc
mov ecx, dword [esp + 0x648]
lea eax, [esi + 1]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x18]
mov ecx, dword [esp + 0x648]
mov edi, eax
mov edx, dword [ecx]
lea eax, [edi - 1]
push eax
push ecx
call dword [edx + 0x10]
movsx esi, al
jmp 0x45e668
mov edi, ebx
jmp 0x45e666
mov ecx, dword [esp + 0x648]
lea eax, [edi - 1]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x10]
movsx eax, al
cmp eax, esi
jne 0x45e666
dec edi
cmp edi, 1
ja 0x45e610
jmp 0x45e666
push 0x25
pop ebx
push 0xffffffffffffffdb
cmp esi, 0x2b
pop eax
cmovge ebx, eax
add ebx, esi
jmp 0x45e65d
mov ecx, dword [esp + 0x648]
lea eax, [edi - 1]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x10]
movsx eax, al
cmp eax, esi
je 0x45e65c
cmp eax, ebx
jne 0x45e664
dec edi
xor eax, eax
inc eax
cmp edi, eax
ja 0x45e640
xor ebx, ebx
mov esi, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x80], edi
test edi, edi
je 0x45e6db
lea eax, [edi - 1]
lea edx, [esp + 0x74]
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x648]
call fcn.0045d74a
mov eax, dword [esp + 0x648]
mov edx, dword [esp + 0x74]
push edx
push eax
mov ecx, dword [eax]
mov dword [esp + 0x88], edx
call dword [ecx + 0x10]
cmp al, 0xa
jne 0x45e6b4
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
jmp 0x45e6d4
mov eax, dword [esp + 0x648]
push dword [esp + 0x80]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
push 2
cmp al, 5
pop ecx
cmove ebx, ecx
mov dword [esp + 0x14], ebx
inc dword [esp + 0x80]
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x648]
push 0xffffffffffffffff
push eax
push esi
mov eax, ebx
lea ecx, [esp + 0x24]
sub eax, edi
push eax
push edi
call fcn.0042b794
jmp 0x46014d
mov eax, dword [esp + 0x48]
cmp eax, 0x14
jg 0x45ea3e
je case.0x45e71d.6
add eax, 0xfffffffe
cmp eax, 0x10
ja case.0x45e71d.8
jmp dword [eax*4 + 0x460261]
xor ebx, ebx
lea ecx, [esp + 0x18]
push ebx
call fcn.0042b91d
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
jmp 0x45e809
mov ecx, dword [esp + 0x78]
push dword [esp + 0x50]
lea ecx, [ecx + 0x10]
call fcn.0042d02b
test al, al
jne 0x45e75b
cmp dword [esp + 0x50], 0x27
jne 0x45eeba
cmp dword [esp + 0x50], 0x2e
jne 0x45e76d
cmp dword [esp + 0x58], 0x2e
je 0x45eeba
cmp dword [esp + 0x4c], 0x3e
jmp 0x45eeb4
mov ecx, dword [esp + 0x78]
push dword [esp + 0x50]
lea ecx, [ecx + 0x10]
call fcn.0042d02b
test al, al
jne case.0x45e71d.8
push 0x64
lea eax, [esp + 0x25bc]
push eax
lea ecx, [esp + 0x20]
call fcn.00478c40
lea eax, [esp + 0x25b8]
push str.__DATA__
push eax
call fcn.004978b0
pop ecx
pop ecx
test eax, eax
je 0x45e819
lea eax, [esp + 0x25b8]
push str.__END__
push eax
call fcn.004978b0
pop ecx
pop ecx
test eax, eax
je 0x45e819
lea eax, [esp + 0x25b8]
push str.format
push eax
call fcn.004978b0
xor ebx, ebx
test eax, eax
pop ecx
pop ecx
mov eax, ebx
jne 0x45e7f8
push 0x29
mov dword [esp + 0x12c], eax
pop eax
push eax
lea ecx, [esp + 0x1c]
call fcn.0042b91d
push 2
pop esi
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x80], eax
jmp 0x45f3f5
mov dword [esp + 0x48], 0x15
xor ebx, ebx
jmp 0x45f3f5
cmp dword [esp + 0x50], 0x3a
jne 0x45e83a
cmp dword [esp + 0x58], 0x3a
je 0x45effa
push dword [esp + 0x50]
lea ecx, [esp + 0xf0]
call fcn.0042d02b
test al, al
jne case.0x45e71d.8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
sub ecx, dword [eax + 0x1f60]
xor eax, eax
inc eax
cmp ecx, eax
jne 0x45eeba
lea ecx, [esp + 0x18]
call fcn.0042b8bb
jmp 0x45eeba
cmp dword [esp + 0x50], 0x2e
jne 0x45e921
cmp dword [esp + 0x58], 0x2e
mov ebx, dword [esp + 0x7c]
je 0x45e902
cmp ebx, 3
jle 0x45e8e2
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x84], eax
cmp ebx, 5
jne 0x45e8c4
cmp eax, 1
jle case.0x45e71d.8
mov eax, dword [esp + 0x58]
add eax, 0xffffffd0
cmp eax, 9
ja 0x45e94d
push 6
jmp 0x45e9d8
cmp ebx, 4
jne 0x45e8f2
cmp eax, 1
jg 0x45e8e2
mov ecx, dword [esp + 0x58]
push 0x10
pop edx
call fcn.0042be59
test al, al
jne case.0x45e71d.8
push 0xa
lea ecx, [esp + 0x1c]
call fcn.0042b91d
jmp case.0x45e71d.8
mov eax, dword [esp + 0x58]
add eax, 0xffffffd0
cmp eax, 9
jbe case.0x45e71d.8
cmp ebx, 6
je 0x45ea21
cmp ebx, 7
je 0x45ea21
cmp ebx, 8
jne 0x45e94d
xor eax, eax
inc eax
jmp 0x45ea24
mov ecx, dword [esp + 0x50]
cmp ecx, 0x5f
je case.0x45e71d.8
mov ebx, dword [esp + 0x7c]
cmp ebx, 5
jne 0x45e954
cmp ecx, 0x45
je 0x45e979
cmp ecx, 0x65
je 0x45e979
lea eax, [ecx - 0x30]
cmp eax, 9
jbe case.0x45e71d.8
push 4
jmp 0x45ea23
cmp ebx, 4
jne 0x45e995
mov ecx, dword [esp + 0x50]
cmp ecx, 0x50
je 0x45e979
cmp ecx, 0x70
je 0x45e979
push 0x10
pop edx
call fcn.0042be59
test al, al
jne case.0x45e71d.8
jmp 0x45e94d
mov esi, dword [esp + 0x58]
push 3
pop eax
mov dword [esp + 0x7c], eax
cmp esi, 0x2b
je 0x45effa
cmp esi, 0x2d
jmp 0x45ece8
cmp ebx, 6
je 0x45e9e2
cmp ebx, 7
je 0x45e9e2
mov ecx, dword [esp + 0x50]
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x45e914
cmp ebx, 3
je case.0x45e71d.8
push 2
pop eax
cmp ebx, eax
jne 0x45e9c4
cmp ecx, 0x37
jmp 0x45e9d0
xor eax, eax
inc eax
cmp ebx, eax
jne 0x45e9d6
cmp dword [esp + 0x50], 0x31
jle case.0x45e71d.8
push 8
pop eax
mov dword [esp + 0x7c], eax
jmp case.0x45e71d.8
mov ecx, dword [esp + 0x50]
lea eax, [ecx - 0x30]
cmp eax, 9
jbe case.0x45e71d.8
mov esi, dword [esp + 0x78]
push ecx
lea ecx, [esi + 0x10]
call fcn.0042d02b
test al, al
je 0x45e902
cmp dword [esp + 0x84], 0
jne 0x45e902
push 0xb
pop edi
mov dword [esp + 0x48], edi
jmp 0x45f4d5
push 6
pop eax
mov dword [esp + 0x48], eax
jmp 0x45eeba
xor ebx, ebx
cmp byte [esp + 0x45], bl
je 0x45f3f5
jmp 0x45eebc
mov eax, dword [esp + 0x48]
cmp eax, 0x1c
jg 0x45ee5b
je case.0x45e71d.6
sub eax, 0x16
je 0x45ebfe
sub eax, 1
je 0x45ea9e
sub eax, 1
je 0x45ea9e
sub eax, 1
je 0x45ea9e
sub eax, 1
je case.0x45e71d.6
sub eax, 1
jne case.0x45e71d.8
cmp dword [esp + 0x6c], 0
jne 0x45f254
mov ecx, dword [esp + 0x50]
call fcn.0042b2b4
test al, al
jne 0x45f254
push ecx
lea ecx, [esp + 0x64]
call fcn.004602a5
jmp case.0x45e71d.8
lea ecx, [esp + 0x18]
call fcn.0042b897
cmp dword [esp + 0x70], 0
je 0x45eac3
lea eax, [esp + 0x138]
push eax
lea ecx, [esp + 0x1c]
call fcn.0042f03b
test al, al
je 0x45eaee
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x70]
add eax, ebx
mov ecx, dword [esp + 0x18]
push 0
push eax
call fcn.0042b5d3
movzx eax, al
cmp eax, 0xd
je 0x45ebc4
cmp eax, 0xa
je 0x45ebc4
push 0x17
pop eax
cmp dword [esp + 0x48], eax
jne 0x45eb17
cmp byte [esp + 0x45], 0
jne 0x45f4ce
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp byte [esp + 0x45], 0
je 0x45eb02
jmp case.0x45e71d.8
cmp byte [esp + 0x45], 0
jne case.0x45e71d.8
mov ebx, dword [esp + 0x78]
xor eax, eax
lea ecx, [esp + 0x18]
push eax
mov esi, eax
mov edi, eax
call fcn.004320c6
test eax, eax
je 0x45ebb4
cmp eax, 0x5c
je 0x45eb61
cmp eax, 0xd
je 0x45eb5a
cmp eax, 0xa
je 0x45eb5a
inc esi
lea ecx, [esp + 0x18]
push esi
call fcn.004320c6
test eax, eax
jne 0x45eb3a
jmp 0x45eb66
push 2
pop eax
mov edi, eax
jmp 0x45eb66
xor eax, eax
lea edi, [eax + 1]
test esi, esi
jle 0x45eb79
push 0
push esi
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
call fcn.0045dfef
xor eax, eax
inc eax
cmp edi, eax
jne 0x45eb99
lea ecx, [esp + 0x18]
call fcn.0042b8bb
mov ecx, dword [esp + 0x50]
cmp ecx, 0xd
je 0x45ebb4
cmp ecx, 0xa
je 0x45ebb4
jmp 0x45ebab
push 2
pop eax
cmp edi, eax
jne 0x45ebb4
cmp byte [esp + 0x45], 0
jne case.0x45e71d.8
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp byte [esp + 0x45], 0
je 0x45eb26
jmp case.0x45e71d.8
mov eax, dword [esp + 0x34]
lea esi, [ebx + eax]
cmp esi, eax
jbe 0x45ebde
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp esi, dword [esp + 0x34]
ja 0x45ebcf
xor ebx, ebx
lea ecx, [esp + 0x18]
push ebx
call fcn.0042b91d
cmp byte [esp + 0x45], bl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x128], ebx
jmp 0x45ece8
mov ebx, dword [esp + 0x128]
xor eax, eax
inc eax
test ebx, ebx
jne 0x45ed1c
mov esi, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x128], eax
mov eax, ecx
mov dword [esp + 0x12c], esi
mov edi, ecx
mov byte [esp + 0x130], cl
mov ebx, esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x134], eax
mov byte [esp + 0x138], cl
cmp esi, 0x20
je 0x45ec4d
cmp esi, 9
jne 0x45ec80
lea edi, [edx + 1]
cmp edi, dword [esp + 0x10]
jae 0x45ec7d
cmp esi, 0x20
je 0x45ec60
cmp esi, 9
jne 0x45ec79
push 0x20
inc edi
lea ecx, [esp + 0x64c]
push edi
call fcn.0042b5d3
movzx esi, al
cmp edi, dword [esp + 0x10]
jb 0x45ec56
mov edx, dword [esp + 0x34]
sub edi, edx
dec edi
cmp esi, 0x27
je 0x45ecf3
cmp esi, 0x22
je 0x45ecf3
cmp esi, 0x60
je 0x45ecf3
test edi, edi
jne 0x45eca9
push dword [esp + 0x58]
lea ecx, [esp + 0xcc]
call fcn.0042d02b
test al, al
jne 0x45ecab
test edi, edi
jle 0x45ecdd
xor ebx, ebx
mov dword [esp + 0x48], 0xa
push ebx
lea ecx, [esp + 0x1c]
call fcn.0042b947
xor eax, eax
mov dword [esp + 0x128], ebx
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x80], eax
jmp 0x45f3f5
test edi, edi
jne case.0x45e71d.8
cmp ebx, 0x5c
jne case.0x45e71d.8
jmp 0x45effa
inc edi
test edi, edi
jle 0x45ed06
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub edi, 1
jne 0x45ecf8
xor eax, eax
mov dword [esp + 0x12c], esi
inc eax
mov byte [esp + 0x130], al
jmp case.0x45e71d.8
cmp ebx, eax
jne case.0x45e71d.8
xor ebx, ebx
mov dword [esp + 0x14], ebx
cmp byte [esp + 0x130], bl
je 0x45ede1
mov eax, dword [esp + 0x12c]
cmp dword [esp + 0x50], eax
jne 0x45ed53
push ebx
lea ecx, [esp + 0x1c]
call fcn.0042b947
jmp 0x45ee31
cmp byte [esp + 0x45], bl
jne 0x45ee31
cmp dword [esp + 0x50], 0x5c
jne 0x45ed7f
movzx eax, byte [esp + 0x12c]
cmp dword [esp + 0x58], eax
jne 0x45ed7f
lea ecx, [esp + 0x18]
call fcn.0042b8bb
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x50], 0xd
je 0x45ee31
mov esi, ebx
cmp dword [esp + 0x54], ebx
jle 0x45ee31
push 0x20
lea eax, [esi + edx]
push eax
lea ecx, [esp + 0x650]
call fcn.0042b5d3
mov ecx, dword [esp + 0x70]
mov byte [esp + ecx + 0x138], al
mov eax, dword [esp + 0x134]
inc eax
inc esi
mov dword [esp + 0x134], eax
mov byte [esp + eax + 0x138], bl
mov eax, dword [esp + 0x134]
mov dword [esp + 0x70], eax
cmp esi, dword [esp + 0x54]
jge 0x45ee35
mov edx, dword [esp + 0x34]
jmp 0x45ed96
push dword [esp + 0x50]
lea ecx, [esp + 0xa8]
call fcn.0042d02b
test al, al
je 0x45ee27
mov ecx, dword [esp + 0x70]
mov al, byte [esp + 0x50]
mov byte [esp + ecx + 0x138], al
mov eax, dword [esp + 0x134]
inc eax
mov dword [esp + 0x134], eax
mov byte [esp + eax + 0x138], bl
mov eax, dword [esp + 0x134]
mov dword [esp + 0x70], eax
jmp 0x45ee35
push ebx
lea ecx, [esp + 0x1c]
call fcn.0042b91d
mov eax, dword [esp + 0x70]
cmp eax, 0xff
jl 0x45f3f5
xor eax, eax
lea ecx, [esp + 0x18]
inc eax
push eax
call fcn.0042b91d
mov eax, ebx
mov dword [esp + 0x128], eax
jmp 0x45f3f5
mov eax, dword [esp + 0x48]
sub eax, 0x1d
je case.0x45e71d.17
sub eax, 1
je case.0x45e71d.6
sub eax, 1
je case.0x45e71d.3
sub eax, 9
je 0x45f06e
push 2
pop esi
sub eax, esi
je 0x45f010
sub eax, esi
jne case.0x45e71d.8
jmp 0x45ee9b
push 2
pop esi
cmp dword [esp + 0x60], 0
jg 0x45eecb
push dword [esp + 0x50]
lea ecx, [esp + 0x90]
call fcn.0042d02b
test al, al
jne case.0x45e71d.8
xor ebx, ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.0042b91d
jmp 0x45f3f5
cmp dword [esp + 0x68], 0
jne 0x45eee3
mov ecx, dword [esp + 0x50]
call fcn.0042b2b4
test al, al
je 0x45ea8f
xor eax, eax
lea ecx, [esp + 0x18]
cmp dword [esp + 0x60], esi
mov edi, eax
push eax
mov ebx, eax
sete byte [esp + 0x8c]
call fcn.004320c6
mov esi, eax
test esi, esi
je case.0x45e71d.8
cmp esi, 0x5c
jne 0x45ef14
cmp dword [esp + 0x68], esi
jne 0x45ef7e
xor edx, edx
inc edx
cmp dword [esp + 0x64], 0
jne 0x45ef24
cmp dword [esp + 0x60], edx
je 0x45ef85
cmp esi, dword [esp + 0x6c]
jne 0x45ef54
mov ecx, dword [esp + 0x64]
sub ecx, 1
mov dword [esp + 0x64], ecx
jne 0x45ef3d
dec dword [esp + 0x60]
mov ebx, edx
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x6c]
jne 0x45ef4e
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
cmp ebx, edx
je 0x45efbb
jmp 0x45ef6b
cmp esi, dword [esp + 0x68]
jne 0x45ef60
inc dword [esp + 0x64]
jmp 0x45ef6b
mov ecx, esi
call fcn.0042b2b4
test al, al
jne 0x45efbb
inc edi
lea ecx, [esp + 0x18]
push edi
call fcn.004320c6
mov esi, eax
test esi, esi
jne 0x45ef09
jmp 0x45efbb
push 2
pop esi
mov ebx, esi
jmp 0x45efbe
mov ecx, esi
call fcn.0042b2b4
test al, al
jne 0x45efbb
cmp esi, 0x23
jne 0x45efb1
lea eax, [edi - 1]
push eax
lea ecx, [esp + 0x1c]
call fcn.004320c6
cmp eax, 0x20
je 0x45efac
cmp eax, 9
jne 0x45efb1
push 3
pop ebx
jmp 0x45efbb
push esi
lea ecx, [esp + 0x64]
call fcn.004602a5
push 2
pop esi
test edi, edi
jle 0x45eff6
cmp dword [esp + 0x48], 0x12
jne 0x45efe8
cmp dword [esp + 0x68], 0x27
je 0x45efe8
push dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.0045dfef
jmp 0x45eff6
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub edi, 1
jne 0x45efe8
cmp ebx, esi
jne 0x45f008
lea ecx, [esp + 0x18]
call fcn.0042b8bb
jmp case.0x45e71d.8
cmp ebx, 3
jmp 0x45eeb4
lea ecx, [esp + 0x18]
call fcn.0042b897
cmp dword [esp + 0x50], 0x2e
jne 0x45f04c
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp byte [esp + 0x45], 0
jne 0x45f03e
cmp dword [esp + 0x50], 0xd
jne 0x45f059
cmp dword [esp + 0x58], 0xa
jne 0x45f059
xor ebx, ebx
lea ecx, [esp + 0x18]
push ebx
call fcn.0042b91d
jmp 0x45f04e
xor ebx, ebx
cmp byte [esp + 0x45], 0
jne 0x45f3f5
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp byte [esp + 0x45], 0
je 0x45f059
jmp case.0x45e71d.8
xor ebx, ebx
push ebx
mov esi, ebx
push edx
jmp 0x45f07a
inc esi
add eax, esi
push eax
mov ecx, dword [esp + 0x20]
call fcn.0042b5d3
movzx eax, al
lea ecx, [esp + 0x98]
push eax
call fcn.0042d02b
test al, al
mov eax, dword [esp + 0x34]
push ebx
jne 0x45f076
mov ecx, dword [esp + 0x1c]
add eax, esi
push eax
call fcn.0042b5d3
cmp al, 0x29
jne 0x45f0cc
add esi, dword [esp + 0x34]
jmp 0x45f0b7
call fcn.0042b8bb
lea ecx, [esp + 0x18]
cmp esi, dword [esp + 0x34]
ja 0x45f0b2
push ebx
call fcn.0042b947
jmp 0x45f3f5
mov dword [esp + 0x48], 0xa
jmp 0x45eebc
mov eax, dword [esp + 0x648]
push edx
push eax
mov dword [esp + 0x7c], edx
mov ecx, dword [eax]
call dword [ecx + 0x14]
cmp byte [esp + 0x44], 0
mov edi, eax
je 0x45f143
push str.cut
lea ecx, [esp + 0x1c]
call fcn.0042f03b
test al, al
je 0x45f143
push 3
lea ecx, [esp + 0x1c]
call fcn.0042b91d
push 4
pop esi
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub esi, 1
jne 0x45f114
xor ebx, ebx
lea ecx, [esp + 0x18]
push ebx
call fcn.0042b91d
mov eax, dword [esp + 0x648]
push 3
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
jmp 0x45f3f5
push ebx
lea edx, [esp + 0x78]
lea ecx, [esp + 0x64c]
call fcn.0045d8c7
pop ecx
mov ecx, dword [esp + 0x648]
mov esi, eax
push esi
push edi
push ecx
mov edx, dword [ecx]
call dword [edx + 0x28]
test esi, esi
jne 0x45f1e6
cmp dword [esp + 0x48], 0x1f
mov edi, dword [esp + 0x74]
jne 0x45f249
mov ecx, dword [esp + 0x10]
mov ebx, edi
lea eax, [ecx - 1]
cmp edi, eax
jae 0x45f1e2
test esi, esi
jne 0x45f1d1
mov edi, ebx
lea edx, [esp + 0x74]
push ecx
inc ebx
lea ecx, [esp + 0x64c]
mov dword [esp + 0x78], ebx
call fcn.0045d8c7
mov ebx, dword [esp + 0x78]
mov esi, eax
mov eax, dword [esp + 0x64c]
pop ecx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov ecx, dword [esp + 0x648]
push esi
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x28]
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 1]
cmp ebx, eax
jb 0x45f186
cmp esi, 3
jne 0x45f1e2
push esi
lea ecx, [esp + 0x1c]
call fcn.0042b91d
jmp 0x45f249
mov edi, ebx
jmp 0x45f249
push 0x1f
pop ebx
lea edx, [edi - 1]
cmp esi, ebx
jne 0x45f208
mov eax, dword [esp + 0x648]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
cmp eax, 3
jne 0x45f230
push eax
pop esi
push eax
jmp 0x45f222
cmp esi, 3
jne 0x45f230
mov eax, dword [esp + 0x648]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
cmp eax, ebx
jne 0x45f230
mov esi, ebx
push ebx
mov eax, dword [esp + 0x64c]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
push esi
lea ecx, [esp + 0x1c]
call fcn.0042b91d
mov edi, dword [esp + 0x74]
jmp 0x45f249
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp edi, dword [esp + 0x34]
ja 0x45f240
jmp case.0x45e71d.8
xor ebx, ebx
lea ecx, [esp + 0x18]
push ebx
mov esi, ebx
mov edi, ebx
call fcn.004320c6
mov ecx, eax
test ecx, ecx
je 0x45f3f5
call fcn.0042b2b4
test al, al
jne 0x45f292
cmp ecx, 0x5c
jne 0x45f282
cmp dword [esp + 0x68], ecx
jne 0x45f2e2
cmp ecx, dword [esp + 0x6c]
jne 0x45f2c5
sub dword [esp + 0x64], 1
jne 0x45f2cf
push 3
pop edi
test esi, esi
jle 0x45f2f9
mov eax, dword [esp + 0x48]
sub eax, 6
je 0x45f2e9
sub eax, 0xe
je 0x45f2e9
sub eax, 7
je 0x45f2e9
sub eax, 1
jne 0x45f2b5
cmp dword [esp + 0x68], 0x27
jne 0x45f2e9
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub esi, 1
jne 0x45f2b5
jmp 0x45f2f9
cmp ecx, dword [esp + 0x68]
jne 0x45f2cf
inc dword [esp + 0x64]
inc esi
lea ecx, [esp + 0x18]
push esi
call fcn.004320c6
mov ecx, eax
test ecx, ecx
jne 0x45f26e
jmp 0x45f292
push 2
pop eax
mov edi, eax
jmp 0x45f292
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0x18]
push ebx
push esi
push eax
call fcn.0045dfef
push 2
pop eax
cmp edi, eax
je 0x45f3ec
cmp edi, 3
jne 0x45f3f5
lea ecx, [esp + 0x18]
jmp 0x45f0c1
cmp dword [esp + 0x60], 0
jg 0x45f33c
push dword [esp + 0x50]
lea ecx, [esp + 0x90]
call fcn.0042d02b
xor ebx, ebx
test al, al
jne 0x45f3f5
jmp 0x45eebc
cmp dword [esp + 0x68], 0
jne 0x45f354
mov ecx, dword [esp + 0x50]
call fcn.0042b2b4
test al, al
je 0x45ea8f
xor ebx, ebx
lea ecx, [esp + 0x18]
push ebx
mov esi, ebx
mov edi, ebx
call fcn.004320c6
mov ecx, eax
test ecx, ecx
je 0x45f3f5
call fcn.0042b2b4
test al, al
jne 0x45f393
cmp ecx, 0x5c
jne 0x45f382
cmp dword [esp + 0x68], ecx
jne 0x45f3d0
cmp ecx, dword [esp + 0x6c]
jne 0x45f3b3
sub dword [esp + 0x64], 1
jne 0x45f3bd
dec dword [esp + 0x60]
xor eax, eax
inc eax
test esi, esi
jle 0x45f3e5
cmp dword [esp + 0x68], 0x27
je 0x45f3d7
mov ecx, dword [esp + 0x78]
push eax
push esi
lea eax, [esp + 0x20]
push eax
call fcn.0045dfef
jmp 0x45f3e5
cmp ecx, dword [esp + 0x68]
jne 0x45f3bd
inc dword [esp + 0x64]
inc esi
lea ecx, [esp + 0x18]
push esi
call fcn.004320c6
mov ecx, eax
test ecx, ecx
jne 0x45f36e
jmp 0x45f393
xor eax, eax
inc eax
mov edi, eax
jmp 0x45f396
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub esi, 1
jne 0x45f3d7
xor eax, eax
inc eax
cmp edi, eax
jne 0x45f3f5
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp dword [esp + 0x48], 0x29
jne 0x45f4ce
mov ecx, dword [esp + 0x50]
cmp ecx, 0x20
je 0x45f40e
cmp ecx, 9
jne 0x45f43d
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x50]
cmp ecx, 0x20
je 0x45f420
cmp ecx, 9
jne 0x45f432
cmp byte [esp + 0x45], 0
jne 0x45f432
lea ecx, [esp + 0x18]
call fcn.0042b8bb
jmp 0x45f412
push 0x29
lea ecx, [esp + 0x1c]
call fcn.0042b91d
push dword [esp + 0x50]
lea ecx, [esp + 0xb4]
call fcn.0042d02b
test al, al
je 0x45f4c1
mov eax, dword [esp + 0x50]
cmp eax, 0x3d
je 0x45f47b
lea ecx, [esp + 0x18]
call fcn.0042b8bb
push dword [esp + 0x50]
lea ecx, [esp + 0xa8]
call fcn.0042d02b
test al, al
jne 0x45f45a
mov eax, dword [esp + 0x50]
cmp eax, 0x20
je 0x45f485
cmp eax, 9
jne 0x45f497
cmp byte [esp + 0x45], 0
jne 0x45f497
lea ecx, [esp + 0x18]
call fcn.0042b8bb
jmp 0x45f477
lea ecx, [esp + 0x18]
cmp eax, 0x3d
jne 0x45f4b2
push ebx
call fcn.0042b947
push 3
pop eax
mov dword [esp + 0x128], eax
jmp 0x45f4c5
push 0xb
pop edi
push ebx
mov dword [esp + 0x4c], edi
call fcn.0042b91d
jmp 0x45f4c8
mov dword [esp + 0x48], ebx
push 0xb
pop edi
mov dword [esp + 0x14], ebx
jmp 0x45f4d1
push 0xb
pop edi
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x128]
xor edx, edx
inc edx
cmp ebx, edx
jne 0x45f553
cmp byte [esp + 0x45], 0
je 0x45f576
cmp byte [esp + 0x130], 0
push 0x18
pop ecx
push 2
pop eax
mov ebx, eax
mov dword [esp + 0x128], ebx
je 0x45f53b
mov eax, dword [esp + 0x48]
cmp eax, 0x16
cmove eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x12c]
cmp eax, 0x22
je 0x45f536
cmp eax, 0x27
je 0x45f52f
cmp eax, 0x60
jne 0x45f549
push 0x19
jmp 0x45f538
push 0x17
pop eax
mov ecx, eax
jmp 0x45f549
push 0x18
pop ecx
jmp 0x45f549
cmp dword [esp + 0x12c], 0x5c
push 0x17
pop eax
cmove ecx, eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.0042b91d
cmp ebx, 3
jne 0x45f576
xor ebx, ebx
cmp byte [esp + 0x45], bl
je 0x45f578
mov eax, ebx
lea ecx, [esp + 0x18]
push 0x2a
mov dword [esp + 0x12c], eax
call fcn.0042b91d
jmp 0x45f578
xor ebx, ebx
cmp dword [esp + 0x48], 0
jne 0x460140
mov ecx, dword [esp + 0x50]
lea eax, [ecx - 0x30]
cmp eax, 9
jbe 0x4600d9
mov eax, dword [esp + 0x58]
add eax, 0xffffffd0
cmp eax, 9
ja 0x45f5b1
cmp ecx, 0x2e
je 0x4600d9
cmp ecx, 0x76
je 0x4600d9
push dword [esp + 0x50]
lea ebx, [esi + 0x10]
mov ecx, ebx
call fcn.0042d02b
test al, al
je 0x45f85f
push 5
lea ecx, [esp + 0x1c]
call fcn.0042b91d
cmp dword [esp + 0x4c], 0x3a
jne 0x45f5f9
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, 0xfffffffe
push 0
push eax
call fcn.0042b5d3
mov ecx, dword [esp + 0x48]
cmp al, 0x3a
cmove ecx, edi
mov dword [esp + 0x48], ecx
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x50]
lea esi, [edi + 1]
cmp eax, 0x73
jne 0x45f638
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0042d02b
test al, al
jne 0x45f634
mov dword [esp + 0x48], 0x12
movaps xmm0, xmmword [0x4f2720]
push 0xb
movups xmmword [esp + 0x64], xmm0
pop ebx
jmp 0x45f7ce
mov eax, dword [esp + 0x50]
cmp eax, 0x6d
jne 0x45f661
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0042d02b
test al, al
jne 0x45f65d
mov dword [esp + 0x48], 0x11
movaps xmm0, xmmword [0x4f2710]
jmp 0x45f627
mov eax, dword [esp + 0x50]
cmp eax, 0x71
jne 0x45f683
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0042d02b
test al, al
jne 0x45f67f
mov dword [esp + 0x48], 0x1a
jmp 0x45f654
mov eax, dword [esp + 0x50]
cmp eax, 0x79
jne 0x45f6a8
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0042d02b
test al, al
jne 0x45f6a4
mov dword [esp + 0x48], 0x2c
jmp 0x45f620
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
cmp eax, 0x74
jne 0x45f6f1
cmp ecx, 0x72
jne 0x45f6f1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, 2
push 0
push eax
call fcn.0042b5d3
movzx eax, al
mov ecx, ebx
push eax
call fcn.0042d02b
test al, al
jne 0x45f6e9
movaps xmm0, xmmword [0x4f2720]
mov dword [esp + 0x48], 0x2c
jmp 0x45f767
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
cmp eax, 0x71
jne 0x45f780
push ecx
lea ecx, [esp + 0x108]
call fcn.0042d02b
test al, al
je 0x45f778
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, 2
push 0
push eax
call fcn.0042b5d3
movzx eax, al
mov ecx, ebx
push eax
call fcn.0042d02b
test al, al
jne 0x45f778
cmp dword [esp + 0x58], 0x71
jne 0x45f73e
mov dword [esp + 0x48], 0x1b
jmp 0x45f760
cmp dword [esp + 0x58], 0x78
jne 0x45f74f
mov dword [esp + 0x48], 0x1c
jmp 0x45f760
xor eax, eax
cmp dword [esp + 0x58], 0x72
setne al
add eax, 0x1d
mov dword [esp + 0x48], eax
movaps xmm0, xmmword [0x4f2710]
lea ecx, [esp + 0x18]
movups xmmword [esp + 0x60], xmm0
call fcn.0042b8bb
inc esi
jmp 0x45f7be
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
cmp eax, 0x78
jne 0x45f7be
cmp ecx, 0x3d
je 0x45f7b6
push ecx
mov ecx, ebx
call fcn.0042d02b
test al, al
je 0x45f7b6
push dword [esp + 0x4c]
lea ecx, [esp + 0xc0]
call fcn.0042d02b
test al, al
je 0x45f7be
mov eax, dword [esp + 0x58]
add eax, 0xffffffd0
cmp eax, 9
ja 0x45f7be
mov dword [esp + 0x48], 0xa
cmp dword [esp + 0x48], 5
je 0x45f80c
push 0xb
pop ebx
cmp dword [esp + 0x48], ebx
je 0x45f800
test edi, edi
je 0x45f800
push dword [esp + 0x10]
mov edx, edi
lea ecx, [esp + 0x64c]
push dword [esp + 0x84]
push dword [esp + 0x1c]
push esi
call fcn.0045d620
mov ecx, dword [esp + 0x58]
add esp, 0x10
test eax, eax
cmovne ecx, ebx
mov dword [esp + 0x48], ecx
xor esi, esi
mov dword [esp + 0x14], esi
jmp 0x460140
inc esi
push 0x20
push esi
lea ecx, [esp + 0x650]
call fcn.0042b5d3
movzx eax, al
mov ecx, ebx
push eax
call fcn.0042d02b
test al, al
jne 0x45f80b
mov ecx, dword [esp + 0x25a8]
lea eax, [esp + 0x648]
push eax
mov eax, dword [esp + 0x7c]
mov edx, esi
add eax, 0x34
push eax
call fcn.0045d5ac
pop ecx
pop ecx
mov ecx, dword [esp + 0x48]
test al, al
push 0xb
pop ebx
cmove ecx, ebx
mov dword [esp + 0x48], ecx
jmp 0x45f7c8
mov eax, dword [esp + 0x50]
cmp eax, 0x23
jne 0x45f87a
push 2
pop eax
push eax
lea ecx, [esp + 0x1c]
call fcn.0042b91d
jmp 0x460140
cmp eax, 0x22
jne 0x45f8ae
push 6
lea ecx, [esp + 0x1c]
call fcn.0042b91d
movaps xmm0, xmmword [0x4f2710]
lea ecx, [esp + 0x60]
push dword [esp + 0x50]
movups xmmword [esp + 0x64], xmm0
call fcn.004602a5
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x460140
cmp eax, 0x27
jne 0x45f8da
cmp dword [esp + 0x4c], 0x26
jne 0x45f8d6
push dword [esp + 0x58]
lea ecx, [esi + 4]
call fcn.0042d02b
test al, al
je 0x45f8d6
push edi
lea ecx, [esp + 0x1c]
call fcn.0042b91d
jmp 0x45f8a3
push 7
jmp 0x45f881
cmp eax, 0x60
jne 0x45f8e3
push 0x14
jmp 0x45f881
cmp eax, 0x24
jne 0x45f952
push 0xc
lea ecx, [esp + 0x1c]
call fcn.0042b91d
mov ecx, dword [esp + 0x58]
cmp ecx, 0x7b
jne 0x45f904
push 0xa
lea ecx, [esp + 0x1c]
jmp 0x45f914
call fcn.0042b2b4
lea ecx, [esp + 0x18]
test al, al
je 0x45f91b
xor eax, eax
push eax
call fcn.0042b947
jmp 0x45f8a3
call fcn.0042b8bb
cmp dword [esp + 0x50], 0x60
jne 0x45f92e
cmp dword [esp + 0x58], 0x60
je 0x45f944
cmp dword [esp + 0x50], 0x3a
jne 0x45f8a3
cmp dword [esp + 0x58], 0x3a
jne 0x45f8a3
lea ecx, [esp + 0x18]
call fcn.0042b8bb
jmp 0x45f8a3
cmp eax, 0x40
jne 0x45f9e5
push 0xd
lea ecx, [esp + 0x1c]
call fcn.0042b91d
push dword [esp + 0x58]
lea ecx, [esp + 0xe4]
call fcn.0042d02b
test al, al
jne 0x45f8a3
mov eax, dword [esp + 0x58]
cmp eax, 0x3a
jne 0x45f9c6
mov ecx, dword [esp + 0x18]
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
add eax, 2
push eax
call fcn.0042b5d3
cmp al, 0x3a
jne 0x45f9c2
mov eax, dword [esp + 0x34]
lea esi, [eax + 2]
cmp esi, eax
jbe 0x45f8a3
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp esi, dword [esp + 0x34]
ja 0x45f9ae
jmp 0x45f8a3
mov eax, dword [esp + 0x58]
cmp eax, 0x7b
je 0x45f8fc
cmp eax, 0x5b
je 0x45f8fc
mov dword [esp + 0x48], 0xa
jmp 0x45f8a3
push eax
lea ecx, [esp + 0xfc]
call fcn.0042d02b
test al, al
je 0x45ff25
xor ebx, ebx
cmp dword [esp + 0x50], 0x3c
mov byte [esp + 0xe], bl
jne 0x45fa17
cmp dword [esp + 0x58], 0x3c
jne 0x45fa17
xor eax, eax
inc eax
mov byte [esp + 0xf], al
jmp 0x45fa1b
mov byte [esp + 0xf], bl
mov eax, dword [esp + 0x34]
xor edx, edx
cmp edx, eax
sbb esi, esi
lea ecx, [eax - 1]
and esi, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x74], esi
call fcn.0042b897
lea ecx, [esp + 0x648]
call fcn.0042b618
mov eax, dword [esp + 0x648]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
test al, al
movzx ecx, bl
push 1
pop eax
cmove ecx, eax
lea edx, [esp + 0x74]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x648]
call fcn.0045d74a
mov ebx, dword [esp + 0x74]
test ebx, ebx
jne 0x45fa88
xor eax, eax
inc eax
mov edx, dword [esp + 0x50]
mov byte [esp + 0xe], al
jmp 0x45fd0a
mov eax, dword [esp + 0x648]
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
push 0x20
push ebx
lea ecx, [esp + 0x650]
movsx esi, al
call fcn.0042b5d3
movzx edi, al
cmp esi, 0xc
jg 0x45fcdb
je 0x45fcbf
sub esi, 3
je 0x45fa78
push 2
pop eax
sub esi, eax
je 0x45fc29
sub esi, 5
je 0x45fb8f
sub esi, 1
jne 0x45fbcc
xor eax, eax
lea ecx, [esp + 0x648]
inc eax
mov edx, ebx
mov byte [esp + 0xe], al
call fcn.0045d844
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x45fb88
push 2
pop ecx
cmp eax, ecx
je 0x45fb88
cmp eax, 3
jne 0x45fbcc
mov edx, dword [esp + 0x50]
cmp edx, 0x2f
jne 0x45fb41
mov ecx, dword [esp + 0x58]
call fcn.0042b2b4
test al, al
jne 0x45fb36
lea eax, [ecx - 0x30]
cmp eax, 9
jbe 0x45fb36
cmp ecx, edx
jne 0x45fd06
xor eax, eax
mov byte [esp + 0xe], al
jmp 0x45fd0a
cmp edx, 0x2a
je 0x45fb66
cmp edx, 0x25
je 0x45fb66
cmp edx, 0x3c
jne 0x45fd06
mov ecx, dword [esp + 0x58]
call fcn.0042b2b4
test al, al
jne 0x45fb36
cmp ecx, 0x3d
jmp 0x45fb30
mov ecx, dword [esp + 0x58]
call fcn.0042b2b4
test al, al
jne 0x45fb36
lea eax, [ecx - 0x30]
cmp eax, 9
jbe 0x45fb36
cmp edx, 0x2a
jne 0x45fd06
cmp ecx, edx
jmp 0x45fb30
xor eax, eax
jmp 0x45fa7b
xor eax, eax
inc eax
mov byte [esp + 0xe], al
cmp edi, 0x29
je 0x45fb88
cmp edi, 0x5d
je 0x45fb88
cmp edi, 0x7d
jne 0x45fbd6
mov edx, ebx
lea ecx, [esp + 0x648]
call fcn.0045d7cf
cmp eax, 0xc
je 0x45fb88
cmp eax, 0xd
je 0x45fb88
cmp eax, 0xe
je 0x45fb88
cmp eax, 0xf
je 0x45fb88
cmp eax, 0xa
je 0x45fb88
mov al, byte [esp + 0xe]
mov cl, byte [esp + 0xf]
jmp 0x45fc20
cmp edi, 0x2b
je 0x45fbe0
cmp edi, 0x2d
jne 0x45fbd0
push 0x20
lea eax, [ebx - 1]
push eax
lea ecx, [esp + 0x650]
call fcn.0042b5d3
movzx eax, al
cmp edi, eax
jne 0x45fbcc
push 0x20
lea eax, [ebx - 2]
push eax
lea ecx, [esp + 0x650]
call fcn.0042b5d3
mov cl, byte [esp + 0xf]
movzx eax, al
cmp edi, eax
je 0x45fcfd
xor eax, eax
mov byte [esp + 0xe], al
mov edx, dword [esp + 0x50]
jmp 0x45fd0e
mov edx, dword [esp + 0x50]
xor eax, eax
inc eax
mov byte [esp + 0xe], al
cmp edx, 0x2f
jne 0x45fca3
lea edi, [ebx + 1]
test ebx, ebx
je 0x45fc5b
mov eax, dword [esp + 0x648]
lea esi, [ebx - 1]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
cmp al, 5
jne 0x45fc5b
mov ebx, esi
test esi, esi
jne 0x45fc40
lea eax, [esp + 0x648]
mov edx, edi
push eax
lea eax, [esp + 0x23c]
mov ecx, ebx
push eax
call fcn.0045d5ac
pop ecx
pop ecx
test al, al
jne 0x45fbcc
mov ecx, dword [esp + 0x58]
call fcn.0042b2b4
test al, al
jne 0x45fb88
lea eax, [ecx - 0x30]
cmp eax, 9
jbe 0x45fb88
cmp ecx, 0x2f
jmp 0x45fbca
cmp edx, 0x2a
je 0x45fb66
cmp edx, 0x25
je 0x45fb66
cmp edx, 0x3c
jne 0x45fd0a
jmp 0x45fb54
mov cl, byte [esp + 0xf]
test cl, cl
je 0x45fcfd
cmp byte [esp + 0x14], 0
je 0x45fcfd
xor eax, eax
xor esi, esi
mov dword [esp + 0x14], eax
lea ebx, [eax + 1]
jmp 0x45fd1c
push 0x17
pop eax
sub esi, eax
je 0x45fa78
sub esi, 1
je 0x45fa78
sub esi, 1
jne 0x45fbcc
jmp 0x45fa78
mov al, byte [esp + 0xe]
jmp 0x45fc20
mov al, byte [esp + 0xe]
mov cl, byte [esp + 0xf]
xor esi, esi
mov dword [esp + 0x14], esi
test cl, cl
je 0x45fd7d
mov bl, byte [esp + 0xe]
push 0x4f0830
lea ecx, [esp + 0x1c]
call fcn.0042f03b
lea ecx, [esp + 0x18]
test al, al
je 0x45fd4f
push 0xa
call fcn.0042b91d
push 3
pop esi
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub esi, 1
jne 0x45fd3c
jmp 0x460140
test bl, bl
je 0x45fd68
push 0x16
call fcn.0042b91d
mov eax, esi
mov dword [esp + 0x128], eax
jmp 0x460140
push 0xa
call fcn.0042b91d
lea ecx, [esp + 0x18]
call fcn.0042b8bb
jmp 0x460140
cmp edx, 0x2a
jne 0x45fe09
lea ecx, [esp + 0x18]
test al, al
je 0x45fdf2
push 0xf
call fcn.0042b91d
mov eax, dword [esp + 0x58]
cmp eax, 0x3a
jne 0x45fddd
mov ecx, dword [esp + 0x18]
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
add eax, 2
push eax
call fcn.0042b5d3
cmp al, 0x3a
jne 0x45fdd9
mov eax, dword [esp + 0x34]
lea esi, [eax + 2]
cmp esi, eax
jbe 0x460140
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp esi, dword [esp + 0x34]
ja 0x45fdc5
jmp 0x460140
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x18]
cmp eax, 0x7b
jne 0x45fd73
push 0xa
call fcn.0042b947
jmp 0x460140
push 0xa
call fcn.0042b91d
cmp dword [esp + 0x58], 0x2a
jne 0x460140
jmp 0x45fd6f
cmp edx, 0x25
jne 0x45fea7
lea ecx, [esp + 0x18]
test al, al
je 0x45fea0
push 0xe
call fcn.0042b91d
push dword [esp + 0x58]
lea ecx, [esp + 0xd8]
call fcn.0042d02b
test al, al
jne 0x45fd6f
mov eax, dword [esp + 0x58]
cmp eax, 0x3a
jne 0x45fe85
mov ecx, dword [esp + 0x18]
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
add eax, 2
push eax
call fcn.0042b5d3
cmp al, 0x3a
jne 0x45fe81
mov eax, dword [esp + 0x34]
lea esi, [eax + 2]
cmp esi, eax
jbe 0x460140
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp esi, dword [esp + 0x34]
ja 0x45fe6d
jmp 0x460140
mov eax, dword [esp + 0x58]
cmp eax, 0x7b
jne 0x45fe93
lea ecx, [esp + 0x18]
jmp 0x45fde6
mov dword [esp + 0x48], 0xa
jmp 0x460140
push 0xa
jmp 0x45f870
cmp edx, 0x3c
jne 0x45fee7
test al, al
je 0x45fee0
lea eax, [esp + 0x18]
push eax
call fcn.0045dfad
mov esi, eax
test esi, esi
jle 0x45fee0
push 0xb
pop ecx
push ecx
lea ecx, [esp + 0x1c]
call fcn.0042b91d
lea ecx, [esp + 0x18]
call fcn.0042b8bb
sub esi, 1
jne 0x45fecd
jmp 0x460140
push 0xa
jmp 0x45f86c
lea ecx, [esp + 0x18]
test al, al
je 0x45ff14
push 0x11
call fcn.0042b91d
movaps xmm0, xmmword [0x4f2710]
lea ecx, [esp + 0x60]
push dword [esp + 0x50]
movups xmmword [esp + 0x64], xmm0
call fcn.004602a5
jmp 0x460140
push 0xa
call fcn.0042b91d
cmp dword [esp + 0x58], 0x2f
jmp 0x45fdfe
mov eax, dword [esp + 0x50]
cmp eax, 0x3d
jne 0x45ff54
push dword [esp + 0x58]
lea ecx, [esp + 0x90]
call fcn.0042d02b
test al, al
je 0x45ff50
cmp byte [esp + 0x44], 0
je 0x45ff50
push 3
jmp 0x45f8cb
mov eax, dword [esp + 0x50]
cmp eax, 0x2d
jne 0x460034
push dword [esp + 0x58]
lea ecx, [esi + 4]
call fcn.0042d02b
test al, al
je 0x460030
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x11c]
push 2
pop eax
push dword [esp + 0x58]
mov esi, eax
call fcn.0042d02b
test al, al
je 0x45ffb4
mov ecx, dword [esp + 0x18]
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
add eax, esi
push eax
call fcn.0042b5d3
movzx eax, al
mov ecx, ebx
push eax
call fcn.0042d02b
test al, al
jne 0x45ffb4
push 5
jmp 0x45ffe5
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
add eax, 2
jmp 0x45ffca
xor eax, eax
inc esi
push eax
mov eax, dword [esp + 0x38]
add eax, esi
mov ecx, dword [esp + 0x1c]
push eax
call fcn.0042b5d3
movzx eax, al
mov ecx, ebx
push eax
call fcn.0042d02b
test al, al
jne 0x45ffc0
push 0xa
pop eax
push eax
lea ecx, [esp + 0x1c]
call fcn.0042b91d
mov ebx, dword [esp + 0x10]
lea eax, [esi + edi]
push ebx
push dword [esp + 0x84]
mov edx, edi
lea ecx, [esp + 0x650]
push dword [esp + 0x1c]
push eax
call fcn.0045d620
add esp, 0x10
test al, 2
mov eax, dword [esp + 0x48]
push 0xb
pop ecx
cmovne eax, ecx
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x460144
mov eax, dword [esp + 0x50]
cmp eax, 0x28
jne 0x460074
cmp dword [esp + 0x34], 0
jbe 0x460074
lea ecx, [esp + 0x18]
call fcn.0042b897
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x648]
lea edx, [edx - 1]
call fcn.0045d941
test al, al
je 0x46006d
xor eax, eax
mov dword [esp + 0x14], eax
push 0x28
jmp 0x45f86a
push 0xa
jmp 0x45f86a
push eax
lea ecx, [esp + 0x114]
call fcn.0042d02b
test al, al
je 0x4600b9
push 0xa
lea ecx, [esp + 0x1c]
call fcn.0042b91d
cmp dword [esp + 0x50], 0x2e
jne 0x460140
cmp dword [esp + 0x58], 0x2e
jne 0x460140
lea ecx, [esp + 0x18]
call fcn.0042b8bb
cmp dword [esp + 0x58], 0x2e
jmp 0x45fdfe
cmp dword [esp + 0x50], 4
je 0x4600d2
cmp dword [esp + 0x50], 0x1a
je 0x4600d2
lea ecx, [esp + 0x18]
call fcn.0042b897
jmp 0x460140
push 0x15
jmp 0x45f86c
push 4
lea ecx, [esp + 0x1c]
call fcn.0042b91d
cmp dword [esp + 0x50], 0x30
push 5
pop eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], ebx
jne 0x460132
mov eax, dword [esp + 0x58]
cmp eax, 0x78
je 0x460126
cmp eax, 0x58
je 0x460126
cmp eax, 0x62
je 0x460121
cmp eax, 0x42
je 0x460121
add eax, 0xffffffd0
cmp eax, 9
ja 0x460140
push 2
jmp 0x460128
xor eax, eax
inc eax
jmp 0x460129
push 4
pop eax
mov dword [esp + 0x7c], eax
jmp 0x45fd6f
cmp dword [esp + 0x50], 0x76
jne 0x460140
push 7
pop eax
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
call fcn.0042b8bb
mov edx, dword [esp + 0x34]
cmp edx, dword [esp + 0x20]
jb 0x45e6fe
lea ecx, [esp + 0x18]
call fcn.0042b897
mov eax, dword [esp + 0x48]
cmp eax, 0x17
je 0x46017c
cmp eax, 0x18
je 0x46017c
cmp eax, 0x19
je 0x46017c
cmp eax, 0x2a
jne 0x460194
mov eax, dword [esp + 0x648]
push dword [esp + 0x1600]
push dword [esp + 0x38]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
lea ecx, [esp + 0x18]
call fcn.0042b897
push dword [esp + 0xb8]
call fcn.00487120
push dword [esp + 0xc8]
call fcn.00487120
push dword [esp + 0xa8]
call fcn.00487120
push dword [esp + 0xb8]
call fcn.00487120
push dword [esp + 0xe0]
call fcn.00487120
push dword [esp + 0xf0]
call fcn.00487120
push dword [esp + 0x100]
call fcn.00487120
push dword [esp + 0x110]
call fcn.00487120
push dword [esp + 0x120]
call fcn.00487120
push dword [esp + 0xb8]
call fcn.00487120
push dword [esp + 0x134]
call fcn.00487120
push dword [esp + 0x144]
call fcn.00487120
push dword [esp + 0x154]
call fcn.00487120
add esp, 0x34
lea ecx, [esp + 0x238]
call fcn.00478f63
mov ecx, dword [esp + 0x2624]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00486c63
mov esp, ebp
pop ebp
ret 0x14