Function at 0x45311f
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xb4
push ebx
push esi
mov esi, dword [ebp + 0x6c]
mov eax, dword [esi]
cmp eax, dword [esi + 4]
push edi
jae 0x454938
mov edi, dword [ebp + 0x60]
mov ebx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x7c]
inc dword [esi]
cmp eax, dword [esi + 8]
jae 0x454941
test byte [ebp + 0x78], 2
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x38], eax
je 0x45316a
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x18], eax
lea eax, [ebp + 0x18]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x74], eax
movzx ecx, byte [edi]
xor eax, eax
cmp dword [esi + 0x40], eax
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x6c], ecx
je 0x45318f
cmp ebx, dword [esi + 0x54]
jb 0x45318f
xor edx, edx
inc edx
cmp ebx, dword [ebp + 0x64]
jbe 0x453192
mov dword [esi + 0x44], edx
jmp 0x453192
xor edx, edx
inc edx
cmp ecx, 0x6d
ja case.0x4531a2.14
movzx eax, byte [ecx + 0x455270]
jmp dword [eax*4 + 0x455160]
lea eax, [edi + 3]
mov cl, byte [eax]
cmp cl, 0x64
jne 0x4531d1
mov eax, dword [esi + 0x74]
xor ecx, ecx
test eax, eax
mov ch, byte [edi + 4]
mov cl, byte [edi + 5]
je 0x45323b
cmp ecx, 0xffff
je 0x4531ee
cmp ecx, dword [eax + 4]
jne 0x45323b
jmp 0x4531ee
cmp cl, 0x63
jne 0x4531f5
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
shl eax, 1
cmp eax, dword [ebp + 0x68]
jge 0x45323b
mov ecx, dword [esi + 0xc]
cmp dword [ecx + eax*4], 0
jl 0x45323b
push 3
mov ecx, edx
pop eax
jmp 0x453245
cmp cl, 0x65
jne 0x453206
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
jmp 0x45324f
mov ecx, dword [ebp + 0x7c]
inc ecx
push ecx
push 1
push 0
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
cmp eax, 1
je 0x4547ff
test eax, eax
je 0x45323b
cmp eax, 0xfffffc1c
jne 0x455158
xor ecx, ecx
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
test ecx, ecx
jne 0x45481c
cmp byte [edi], 0x53
je 0x45481c
add edi, 3
jmp 0x45316a
mov edi, dword [esi + 0x74]
test edi, edi
je 0x454b33
cmp dword [edi + 4], 0
jne 0x454b33
mov eax, dword [edi]
mov dword [esi + 0x74], eax
mov eax, dword [edi + 0x14]
shl eax, 2
push eax
push dword [edi + 0x10]
push dword [esi + 0xc]
call fcn.00455e40
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x38]
add esp, 0xc
mov dword [ebp + 0x70], eax
jmp 0x45316a
movzx eax, byte [edi + 1]
mov dword [ebp + 0x70], eax
inc edi
inc edi
jmp 0x45316a
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push 0
push 0
push dword [ebp + 0x70]
lea eax, [edi + 3]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
cmp eax, 1
je 0x4532f4
test eax, eax
je 0x4532e5
cmp eax, 0xfffffc1c
jne 0x455158
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je case.0x4531a2.87
cmp byte [edi], 0x54
je case.0x4531a2.108
test byte [ebp + 0x78], 1
jne 0x45336d
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x453303
mov eax, dword [esi + 0x60]
add edi, 3
mov dword [ebp + 0x68], eax
jmp 0x45316a
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push 0
push 0
push dword [ebp + 0x70]
lea eax, [edi + 3]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
cmp eax, 1
je case.0x4531a2.108
test eax, eax
je 0x453354
cmp eax, 0xfffffc1c
jne 0x455158
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je case.0x4531a2.88
test byte [ebp + 0x78], 1
je 0x453258
xor eax, eax
inc eax
jmp 0x455158
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
sub ebx, eax
cmp ebx, dword [esi + 0x50]
jae 0x453258
xor eax, eax
jmp 0x455158
add edi, 6
jmp 0x45316a
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x44], ebx
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push 0
push dword [ebp + 0x74]
lea eax, [edi + 3]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
cmp eax, 1
je 0x4533e1
test eax, eax
je 0x4533d2
cmp eax, 0xfffffc1c
jne 0x455158
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x45339d
mov al, byte [edi]
cmp al, 0x5c
je 0x4533eb
cmp al, 0x53
jne case.0x4531a2.108
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x4533eb
cmp byte [edi], 0x54
mov eax, dword [esi + 0x60]
mov ebx, dword [esi + 0x5c]
mov dword [ebp + 0x68], eax
je 0x453258
cmp ebx, dword [ebp + 0x44]
je 0x453258
lea eax, [edi + 3]
cmp byte [eax], 0x18
mov dword [ebp + 0x40], eax
jne 0x45342f
mov ecx, dword [ebp + 0x70]
movzx eax, byte [edi + 4]
and ecx, 0xfffffff8
or eax, ecx
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x7c]
inc eax
cmp byte [edi], 0x56
push eax
jne 0x4548d7
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push dword [ebp + 0x40]
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
mov edi, dword [ebp + 0x6c]
jmp 0x454929
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je case.0x4531a2.83
jmp 0x45316a
mov eax, dword [ebp + 0x7c]
inc edi
inc eax
push eax
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x4534a3
jmp 0x453258
inc edi
mov eax, edi
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x53
je 0x4534ba
mov ecx, dword [ebp + 0x7c]
inc ecx
push ecx
push 0
push dword [ebp + 0x74]
add eax, 3
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
jmp 0x45316a
xor ecx, ecx
mov ch, byte [edi + 1]
mov eax, edi
mov cl, byte [edi + 2]
sub eax, ecx
mov cl, byte [eax]
cmp cl, 0x60
mov dword [ebp + 0x6c], eax
jb 0x453520
mov edx, dword [ebp + 0x74]
mov edx, dword [edx + 4]
mov dword [ebp + 0x44], edx
mov edx, dword [ebp + 0x74]
mov edx, dword [edx]
mov dword [ebp + 0x74], edx
jmp 0x453524
and dword [ebp + 0x44], 0
cmp cl, 0x57
je 0x454cb5
cmp cl, 0x58
je 0x454cb5
cmp cl, 0x59
je 0x454cb5
cmp cl, 0x5a
je 0x454cb5
cmp cl, 0x5c
je 0x454cb5
cmp cl, 0x5e
je 0x45355f
cmp cl, 0x61
jne 0x4535ef
xor edx, edx
mov dh, byte [eax + 3]
mov dl, byte [eax + 4]
lea ecx, [edx + edx]
cmp ecx, dword [esi + 0x14]
mov dword [ebp + 0x3c], edx
mov dword [esi + 0x64], edx
jl 0x45357e
mov dword [esi + 0x2c], 1
jmp 0x4535b0
mov edx, dword [esi + 0x10]
sub edx, dword [ebp + 0x3c]
mov eax, dword [esi + 0xc]
mov edx, dword [eax + edx*4]
shl ecx, 2
mov dword [eax + ecx], edx
mov edx, dword [esi + 0xc]
mov eax, ebx
sub eax, dword [esi + 0x50]
mov dword [edx + ecx + 4], eax
mov edx, dword [ebp + 0x3c]
lea eax, [edx + edx]
cmp dword [ebp + 0x68], eax
jg 0x4535ad
add eax, 2
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x6c]
mov ecx, dword [esi + 0x74]
test ecx, ecx
mov dword [ebp + 0x40], ecx
je 0x4535ef
cmp dword [ecx + 4], edx
jne 0x4535ef
mov edi, ecx
mov eax, dword [edi]
mov dword [esi + 0x74], eax
mov eax, dword [edi + 0xc]
mov dword [ebp + 0x64], eax
mov eax, dword [edi + 0x14]
shl eax, 2
push eax
push dword [edi + 0x10]
push dword [esi + 0xc]
call fcn.00455650
mov eax, dword [ebp + 0x38]
mov edi, dword [edi + 8]
add esp, 0xc
mov dword [ebp + 0x70], eax
jmp 0x45316a
cmp byte [edi], 0x54
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x70], ecx
je 0x453258
cmp ebx, dword [ebp + 0x44]
je 0x453258
cmp byte [eax], 0x60
sbb eax, eax
and eax, 0xfffffffe
inc eax
inc eax
cmp byte [edi], 0x56
mov dword [ebp + 0x78], eax
jne 0x4548ff
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push 0
push dword [ebp + 0x74]
add edi, 3
push ecx
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
cmp dword [ebp + 0x78], eax
jne 0x454c98
mov edi, dword [ebp + 0x6c]
jmp 0x45492d
cmp dword [esi + 0x30], 0
je 0x453664
cmp ebx, dword [esi + 0x50]
je case.0x4531a2.108
test byte [ebp + 0x70], 2
je case.0x4531a2.1
mov ecx, dword [esi + 0x50]
cmp ebx, ecx
je 0x4536ce
cmp ebx, dword [esi + 0x54]
je case.0x4531a2.108
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4536a1
cmp ebx, ecx
jbe case.0x4531a2.108
push 0
lea edx, [esi + 0x1c]
push edx
push ecx
push eax
push ebx
call fcn.00418b9b
add esp, 0x14
test eax, eax
jmp 0x4539e0
mov eax, dword [esi + 0x1c]
add ecx, eax
cmp ebx, ecx
jb case.0x4531a2.108
mov ecx, ebx
sub ecx, eax
mov dl, byte [ecx]
cmp dl, byte [esi + 0x20]
jne case.0x4531a2.108
cmp eax, 1
je 0x4536ce
mov al, byte [ecx + 1]
cmp al, byte [esi + 0x21]
jne case.0x4531a2.108
inc edi
jmp 0x45316a
cmp ebx, dword [esi + 0x50]
jmp 0x4536c8
mov eax, dword [esi + 0x68]
add eax, dword [esi + 0x50]
cmp ebx, eax
jmp 0x4536c8
mov dword [ebp + 0x64], ebx
jmp 0x4536ce
test byte [ebp + 0x70], 2
je 0x453733
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae 0x45372d
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x45370c
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.00418b21
jmp 0x453697
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja case.0x4531a2.108
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne case.0x4531a2.108
cmp ecx, edx
je 0x4536ce
mov al, byte [ebx + 1]
jmp 0x4536c5
cmp dword [esi + 0x34], 0
jmp 0x4536c8
cmp dword [esi + 0x34], 0
jne case.0x4531a2.108
cmp dword [esi + 0x38], 0
jne case.0x4531a2.23
mov eax, dword [esi + 0x54]
cmp ebx, eax
je 0x4536ce
mov edx, dword [esi + 0x18]
test edx, edx
je 0x453782
cmp ebx, eax
jae case.0x4531a2.108
push 0
lea ecx, [esi + 0x1c]
push ecx
push eax
push edx
push ebx
call fcn.00418b21
add esp, 0x14
test eax, eax
je case.0x4531a2.108
jmp 0x4537ab
cmp ebx, dword [esi + 0x54]
jb case.0x4531a2.108
jmp 0x4536ce
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja case.0x4531a2.108
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne case.0x4531a2.108
cmp ecx, 1
je 0x4537ab
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
jne case.0x4531a2.108
mov eax, dword [esi + 0x54]
sub eax, dword [esi + 0x1c]
jmp 0x4536df
cmp ebx, dword [esi + 0x50]
je 0x4537cc
movzx eax, byte [ebx - 1]
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 0x10
je 0x4537cc
mov ecx, edx
jmp 0x4537ce
xor ecx, ecx
cmp ebx, dword [esi + 0x54]
jae 0x4537e4
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 0x10
je 0x4537e4
xor eax, eax
inc eax
jmp 0x4537e6
xor eax, eax
mov dl, byte [edi]
inc edi
cmp dl, 5
jne 0x4537f7
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x4537fe
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
test eax, eax
je 0x45316a
jmp case.0x4531a2.108
test byte [ebp + 0x70], 4
jne case.0x4531a2.13
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x45383c
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae case.0x4531a2.13
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.00418b21
add esp, 0x14
test eax, eax
jne case.0x4531a2.108
jmp case.0x4531a2.13
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x54]
sub ecx, eax
cmp ebx, ecx
ja case.0x4531a2.13
mov cl, byte [ebx]
cmp cl, byte [esi + 0x20]
jne case.0x4531a2.13
cmp eax, edx
je case.0x4531a2.108
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je case.0x4531a2.108
mov eax, ebx
inc ebx
cmp eax, dword [esi + 0x54]
jae case.0x4531a2.108
jmp 0x4536ce
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 4
jmp 0x4536c8
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 4
jmp 0x4539e0
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 1
jmp 0x4536c8
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 1
jmp 0x4539e0
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 0x10
jmp 0x4536c8
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 0x10
jmp 0x4539e0
mov ecx, dword [esi + 0x54]
cmp ebx, ecx
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
je 0x4536ce
jbe case.0x4531a2.108
cmp eax, 0xc
jbe 0x45394f
cmp eax, 0xd
je 0x453958
cmp eax, 0x85
je 0x45394f
cmp eax, 0x2027
jbe case.0x4531a2.108
cmp eax, 0x2029
ja case.0x4531a2.108
cmp dword [esi + 0x48], 0
jmp 0x4536c8
cmp ebx, ecx
jae 0x4536ce
cmp byte [ebx], 0xa
jne 0x4536ce
inc ebx
jmp 0x4536ce
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, 0x180e
inc ebx
cmp eax, ecx
ja 0x4539af
je case.0x4531a2.108
cmp eax, 9
je case.0x4531a2.108
cmp eax, 0x20
je case.0x4531a2.108
cmp eax, 0xa0
je case.0x4531a2.108
cmp eax, 0x1680
jmp 0x4539e0
cmp eax, 0x2000
jb 0x4536ce
cmp eax, 0x200a
jbe case.0x4531a2.108
cmp eax, 0x202f
je case.0x4531a2.108
cmp eax, 0x205f
je case.0x4531a2.108
cmp eax, 0x3000
je case.0x4531a2.108
jmp 0x4536ce
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, 0x180e
inc ebx
cmp eax, ecx
ja 0x453a2e
je 0x4536ce
cmp eax, 9
je 0x4536ce
cmp eax, 0x20
je 0x4536ce
cmp eax, 0xa0
je 0x4536ce
cmp eax, 0x1680
jmp 0x4536c8
cmp eax, 0x2000
jb case.0x4531a2.108
cmp eax, 0x200a
jbe 0x4536ce
cmp eax, 0x202f
je 0x4536ce
cmp eax, 0x205f
je 0x4536ce
cmp eax, 0x3000
jmp 0x4536c8
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jb 0x4536ce
cmp eax, 0xd
jbe case.0x4531a2.108
cmp eax, 0x85
je case.0x4531a2.108
cmp eax, 0x2027
jbe 0x4536ce
cmp eax, 0x2029
jbe case.0x4531a2.108
jmp 0x4536ce
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jb case.0x4531a2.108
cmp eax, 0xd
jbe 0x4536ce
cmp eax, 0x85
je 0x4536ce
cmp eax, 0x2027
jbe case.0x4531a2.108
cmp eax, 0x2029
ja case.0x4531a2.108
jmp 0x4536ce
xor eax, eax
mov ah, byte [edi + 1]
add edi, 3
mov al, byte [edi - 1]
shl eax, 1
cmp eax, dword [ebp + 0x68]
mov dword [ebp + 0x40], eax
jge 0x453b16
mov ecx, dword [esi + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
jl 0x453b16
mov edx, dword [eax + 4]
sub edx, ecx
jmp 0x453b1c
mov edx, dword [esi + 0x54]
sub edx, ebx
inc edx
mov al, byte [edi]
cmp al, 0x45
mov dword [ebp + 0x3c], edx
jb 0x453bf7
cmp al, 0x4a
jbe 0x453b65
cmp al, 0x4c
ja 0x453bf7
xor ecx, ecx
cmp al, 0x4c
sete cl
xor eax, eax
mov ah, byte [edi + 3]
mov dword [ebp + 0x48], ecx
xor ecx, ecx
mov ch, byte [edi + 1]
mov al, byte [edi + 4]
mov cl, byte [edi + 2]
test eax, eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x44], ecx
jne 0x453b60
mov dword [ebp + 0x50], 0x7fffffff
add edi, 5
jmp 0x453b93
movzx eax, al
sub eax, 0x45
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x45f4cc]
movsx eax, byte [eax + 0x45f4d4]
inc edi
test eax, eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
jne 0x453b93
mov dword [ebp + 0x50], 0x7fffffff
test edx, edx
je 0x45316a
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x453bd1
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.004530c1
test eax, eax
pop ecx
pop ecx
je case.0x4531a2.108
add ebx, dword [ebp + 0x3c]
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x44]
jle 0x453ba5
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x50]
je 0x45316a
cmp dword [ebp + 0x48], 0
je 0x454d15
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push eax
jmp 0x454cf3
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.004530c1
test eax, eax
pop ecx
pop ecx
je case.0x4531a2.108
add ebx, dword [ebp + 0x3c]
jmp 0x45316a
lea eax, [edi + 1]
add edi, 0x21
mov dword [ebp + 0x40], eax
mov al, byte [edi]
cmp al, 0x45
jb 0x453c90
cmp al, 0x4a
jbe 0x453c61
cmp al, 0x4c
ja 0x453c90
xor ecx, ecx
cmp al, 0x4c
sete cl
xor eax, eax
mov ah, byte [edi + 3]
mov dword [ebp + 0x48], ecx
xor ecx, ecx
mov ch, byte [edi + 1]
mov al, byte [edi + 4]
mov cl, byte [edi + 2]
test eax, eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x44], ecx
jne 0x453c5c
mov dword [ebp + 0x50], 0x7fffffff
add edi, 5
jmp 0x453c98
movzx eax, al
sub eax, 0x45
mov ecx, eax
and ecx, edx
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x45f4cc]
movsx eax, byte [eax + 0x45f4d4]
inc edi
test eax, eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
jne 0x453c98
mov dword [ebp + 0x50], 0x7fffffff
jmp 0x453c98
mov ecx, edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x44], ecx
cmp ecx, edx
mov dword [ebp + 0x6c], edx
jl 0x453cd2
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, eax
xor edx, edx
and ecx, 7
inc edx
shl edx, cl
mov ecx, dword [ebp + 0x40]
shr eax, 3
mov al, byte [eax + ecx]
inc ebx
test al, dl
je case.0x4531a2.108
inc dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x44]
cmp dword [ebp + 0x6c], ecx
jle 0x453c9f
cmp ecx, dword [ebp + 0x50]
je 0x45316a
cmp dword [ebp + 0x48], 0
mov dword [ebp + 0x6c], ecx
je 0x454de2
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push eax
jmp 0x454dc0
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp eax, edx
jl case.0x4531a2.108
mov al, byte [ebx]
inc ebx
cmp byte [edi + 1], al
jmp 0x453d28
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp eax, edx
jl case.0x4531a2.108
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx ecx, byte [edi + 1]
mov dl, byte [edx + eax]
inc ebx
cmp byte [ecx + eax], dl
jne case.0x4531a2.108
jmp 0x4532aa
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
mov dword [ebp + 0x50], ecx
jmp 0x453d5b
mov dword [ebp + 0x4c], edx
xor eax, eax
mov ah, byte [edi + 1]
xor ecx, ecx
mov al, byte [edi + 2]
mov dword [ebp + 0x50], eax
xor eax, eax
cmp byte [edi], 0x25
sete al
mov dword [ebp + 0x48], eax
add edi, 3
jmp 0x453dad
mov dword [ebp + 0x4c], 1
xor ecx, ecx
jmp 0x453d71
xor ecx, ecx
inc ecx
mov dword [ebp + 0x4c], ecx
inc edi
jmp 0x453da6
xor eax, eax
inc eax
xor ecx, ecx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
inc edi
jmp 0x453dad
movzx eax, byte [edi]
sub eax, 0x1e
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x45f4cc]
movsx eax, byte [eax + 0x45f4d4]
inc edi
test eax, eax
mov dword [ebp + 0x50], eax
jne 0x453dad
mov dword [ebp + 0x50], 0x7fffffff
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp ecx, eax
jg case.0x4531a2.108
movzx edx, byte [edi]
inc edi
test byte [ebp + 0x70], 1
mov dword [ebp + 0x44], edx
je 0x453e77
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + edx]
mov dword [ebp + 0x44], eax
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x453dfb
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
inc ebx
cmp dword [ebp + 0x44], eax
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x453ddf
cmp ecx, dword [ebp + 0x50]
je 0x45316a
cmp dword [ebp + 0x48], 0
jne 0x454e54
mov dword [ebp + 0x48], ebx
jmp 0x453e29
cmp ebx, dword [esi + 0x54]
jae 0x453e2e
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
cmp dword [ebp + 0x44], eax
jne 0x453e2e
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x453e13
cmp dword [ebp + 0x4c], 0
jne 0x45316a
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
dec ebx
test eax, eax
jne 0x455158
cmp ebx, dword [ebp + 0x48]
jae 0x453e48
jmp case.0x4531a2.108
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x453e95
movzx eax, byte [ebx]
inc ebx
cmp edx, eax
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x453e81
cmp ecx, dword [ebp + 0x50]
je 0x45316a
cmp dword [ebp + 0x48], 0
jne 0x454eb2
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
mov eax, ecx
jge 0x453ec5
cmp ebx, dword [esi + 0x54]
jae 0x453ec5
movzx ecx, byte [ebx]
cmp edx, ecx
jne 0x453ec5
inc ebx
inc eax
cmp eax, dword [ebp + 0x50]
jl 0x453eb2
cmp dword [ebp + 0x4c], 0
jne 0x45316a
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
dec ebx
test eax, eax
jne 0x455158
cmp ebx, dword [ebp + 0x48]
jae 0x453edf
jmp case.0x4531a2.108
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx ecx, byte [ebx]
inc edi
inc ebx
test byte [ebp + 0x70], 1
je 0x453f31
mov eax, dword [esi + 0x24]
movzx edx, byte [edi]
mov cl, byte [eax + ecx]
inc edi
cmp byte [edx + eax], cl
jmp 0x453f37
movzx eax, byte [edi]
inc edi
cmp eax, ecx
jne 0x45316a
jmp case.0x4531a2.108
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
mov dword [ebp + 0x50], ecx
jmp 0x453f9f
xor eax, eax
mov ah, byte [edi + 1]
xor ecx, ecx
mov al, byte [edi + 2]
mov dword [ebp + 0x50], eax
xor eax, eax
cmp byte [edi], 0x32
sete al
mov dword [ebp + 0x48], eax
jmp 0x453f9f
mov dword [ebp + 0x4c], 1
xor ecx, ecx
jmp 0x453f7a
xor ecx, ecx
inc ecx
mov dword [ebp + 0x4c], ecx
inc edi
jmp 0x453fc8
xor eax, eax
inc eax
xor ecx, ecx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
inc edi
jmp 0x453fcf
xor ecx, ecx
xor eax, eax
mov ah, byte [edi + 1]
mov dword [ebp + 0x4c], 1
mov al, byte [edi + 2]
mov dword [ebp + 0x50], eax
add edi, 3
jmp 0x453fcf
movzx eax, byte [edi]
sub eax, 0x2b
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x45f4cc]
movsx eax, byte [eax + 0x45f4d4]
inc edi
test eax, eax
mov dword [ebp + 0x50], eax
jne 0x453fcf
mov dword [ebp + 0x50], 0x7fffffff
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp ecx, eax
jg case.0x4531a2.108
movzx edx, byte [edi]
inc edi
test byte [ebp + 0x70], 1
mov dword [ebp + 0x44], edx
je 0x454099
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + edx]
mov dword [ebp + 0x44], eax
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x45401d
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
inc ebx
cmp dword [ebp + 0x44], eax
je case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x454001
cmp ecx, dword [ebp + 0x50]
je 0x45316a
cmp dword [ebp + 0x48], 0
jne 0x454f09
mov dword [ebp + 0x48], ebx
jmp 0x45404b
cmp ebx, dword [esi + 0x54]
jae 0x454050
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
cmp dword [ebp + 0x44], eax
je 0x454050
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454035
cmp dword [ebp + 0x4c], 0
jne 0x45316a
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
dec ebx
cmp ebx, dword [ebp + 0x48]
jae 0x45406a
jmp case.0x4531a2.108
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4540b7
movzx eax, byte [ebx]
inc ebx
cmp edx, eax
je case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x4540a3
cmp ecx, dword [ebp + 0x50]
je 0x45316a
cmp dword [ebp + 0x48], 0
jne 0x454f67
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
mov eax, ecx
jge 0x4540e7
cmp ebx, dword [esi + 0x54]
jae 0x4540e7
movzx ecx, byte [ebx]
cmp edx, ecx
je 0x4540e7
inc ebx
inc eax
cmp eax, dword [ebp + 0x50]
jl 0x4540d4
cmp dword [ebp + 0x4c], 0
jne 0x45316a
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
dec ebx
cmp ebx, dword [ebp + 0x48]
jae 0x454101
jmp case.0x4531a2.108
xor ecx, ecx
mov ch, byte [edi + 1]
mov dword [ebp + 0x48], 1
mov cl, byte [edi + 2]
mov dword [ebp + 0x50], ecx
jmp 0x45419a
xor eax, eax
mov ah, byte [edi + 1]
xor ecx, ecx
mov al, byte [edi + 2]
mov dword [ebp + 0x50], eax
xor eax, eax
cmp byte [edi], 0x3f
sete al
mov dword [ebp + 0x48], eax
jmp 0x45419a
mov dword [ebp + 0x4c], 1
xor ecx, ecx
jmp 0x45416f
xor ecx, ecx
inc ecx
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x44], ecx
inc edi
jmp 0x4541c9
xor eax, eax
inc eax
xor ecx, ecx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
inc edi
jmp 0x4541d0
xor ecx, ecx
xor eax, eax
mov ah, byte [edi + 1]
mov dword [ebp + 0x4c], 1
mov al, byte [edi + 2]
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x44], ecx
add edi, 3
jmp 0x4541d0
movzx eax, byte [edi]
sub eax, 0x38
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x45f4cc]
movsx eax, byte [eax + 0x45f4d4]
inc edi
test eax, eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
jne 0x4541d0
mov dword [ebp + 0x50], 0x7fffffff
movzx eax, byte [edi]
mov edx, dword [esi + 0x54]
mov dword [ebp + 0x40], eax
mov eax, edx
sub eax, ebx
inc edi
cmp ecx, eax
jg case.0x4531a2.108
test ecx, ecx
jle 0x4544d2
mov eax, dword [ebp + 0x40]
add eax, 0xfffffffa
cmp eax, 0xe
ja case.0x455048.14
jmp dword [eax*4 + 0x4552de]
test byte [ebp + 0x70], 4
jne case.0x4541fd.13
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x454244
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae 0x45426c
push 0
lea ecx, [esi + 0x1c]
push ecx
push eax
push edx
push ebx
call fcn.00418b21
add esp, 0x14
test eax, eax
jne case.0x4531a2.108
mov ecx, dword [ebp + 0x44]
jmp 0x45426c
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x54]
sub edx, eax
cmp ebx, edx
ja 0x45426c
mov dl, byte [ebx]
cmp dl, byte [esi + 0x20]
jne 0x45426c
cmp eax, 1
je case.0x4531a2.108
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je case.0x4531a2.108
inc ebx
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x454218
jmp 0x4544d2
add ebx, ecx
jmp 0x4544d2
cmp ecx, 1
mov dword [ebp + 0x6c], 1
jl 0x4544d2
cmp ebx, edx
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
je 0x4542c7
jle case.0x4531a2.108
cmp eax, 0xc
jle 0x4542bd
cmp eax, 0xd
je 0x4542d4
cmp eax, 0x85
jne case.0x4531a2.108
cmp dword [esi + 0x48], 0
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x454291
jmp 0x4544d2
cmp ebx, edx
jae 0x4542c7
cmp byte [ebx], 0xa
jne 0x4542c7
inc ebx
jmp 0x4542c7
xor edx, edx
inc edx
cmp ecx, edx
jl 0x4544d2
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 9
je case.0x4531a2.108
cmp eax, 0x20
je case.0x4531a2.108
cmp eax, 0xa0
je case.0x4531a2.108
inc edx
cmp edx, ecx
jle 0x4542eb
jmp 0x4544d2
xor edx, edx
inc edx
cmp ecx, edx
jl 0x4544d2
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 9
je 0x45434c
cmp eax, 0x20
je 0x45434c
cmp eax, 0xa0
jne case.0x4531a2.108
inc edx
cmp edx, ecx
jle 0x45432a
jmp 0x4544d2
xor edx, edx
inc edx
cmp ecx, edx
jl 0x4544d2
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jl 0x454387
cmp eax, 0xd
jle case.0x4531a2.108
cmp eax, 0x85
je case.0x4531a2.108
inc edx
cmp edx, ecx
jle 0x454361
jmp 0x4544d2
xor edx, edx
inc edx
cmp ecx, edx
jl 0x4544d2
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jl case.0x4531a2.108
cmp eax, 0xd
jle 0x4543c2
cmp eax, 0x85
jne case.0x4531a2.108
inc edx
cmp edx, ecx
jle 0x45439c
jmp 0x4544d2
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 4
inc ebx
test dl, dl
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x4543dd
jmp 0x4544d2
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 4
inc ebx
test dl, dl
je case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x45440d
jmp 0x4544d2
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 1
inc ebx
test dl, dl
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x45443d
jmp 0x4544d2
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 1
inc ebx
test dl, dl
je case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x454466
jmp 0x4544d2
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 0x10
inc ebx
test dl, dl
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x45448f
jmp 0x4544d2
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x4544d2
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 0x10
inc ebx
test dl, dl
je case.0x4531a2.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x4544b8
mov edx, dword [ebp + 0x50]
cmp ecx, edx
je 0x45316a
cmp dword [ebp + 0x48], 0
jne 0x454fbe
mov eax, dword [ebp + 0x40]
add eax, 0xfffffffa
cmp eax, 0xe
mov dword [ebp + 0x48], ebx
ja case.0x455048.14
jmp dword [eax*4 + 0x45531a]
test byte [ebp + 0x70], 4
jne case.0x4544f9.13
cmp ecx, edx
mov dword [ebp + 0x6c], ecx
jge 0x4547b6
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae 0x4547b6
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x45453e
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.00418b21
add esp, 0x14
test eax, eax
jne 0x4547b6
jmp 0x454563
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja 0x454563
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne 0x454563
cmp ecx, 1
je 0x4547b6
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je 0x4547b6
inc ebx
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x50]
jl 0x454511
jmp 0x4547b6
mov eax, dword [esi + 0x54]
sub edx, ecx
mov ecx, edx
sub eax, ebx
cmp ecx, eax
jbe 0x454583
mov ecx, eax
add ebx, ecx
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4547b6
movzx eax, byte [ebx]
cmp eax, 0xd
jne 0x4545b5
inc ebx
cmp ebx, edx
jae 0x4547b6
cmp byte [ebx], 0xa
jne 0x4545da
jmp 0x4545d9
cmp eax, 0xa
je 0x4545d9
cmp dword [esi + 0x48], 0
jne 0x4547b6
cmp eax, 0xb
je 0x4545d9
cmp eax, 0xc
je 0x4545d9
cmp eax, 0x85
jne 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454595
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4547b6
movzx eax, byte [ebx]
cmp eax, 9
je 0x4547b6
cmp eax, 0x20
je 0x4547b6
cmp eax, 0xa0
je 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4545f0
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4547b6
movzx eax, byte [ebx]
cmp eax, 9
je 0x45464f
cmp eax, 0x20
je 0x45464f
cmp eax, 0xa0
jne 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x45462f
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4547b6
movzx eax, byte [ebx]
cmp eax, 0xa
je 0x4547b6
cmp eax, 0xb
je 0x4547b6
cmp eax, 0xc
je 0x4547b6
cmp eax, 0xd
je 0x4547b6
cmp eax, 0x85
je 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454666
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4547b6
movzx eax, byte [ebx]
cmp eax, 0xa
je 0x4546e1
cmp eax, 0xb
je 0x4546e1
cmp eax, 0xc
je 0x4546e1
cmp eax, 0xd
je 0x4546e1
cmp eax, 0x85
jne 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4546b7
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
cmp ebx, dword [esi + 0x54]
jae 0x4547b6
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 4
jne 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4546f5
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
cmp ebx, dword [esi + 0x54]
jae 0x4547b6
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 4
je 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454722
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
cmp ebx, dword [esi + 0x54]
jae 0x4547b6
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 1
jne 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454744
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
cmp ebx, dword [esi + 0x54]
jae 0x4547b6
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 1
je 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454762
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
cmp ebx, dword [esi + 0x54]
jae 0x4547b6
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 0x10
jne 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x454780
jmp 0x4547b6
cmp ecx, edx
jge 0x4547b6
cmp ebx, dword [esi + 0x54]
jae 0x4547b6
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 0x10
je 0x4547b6
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x45479e
cmp dword [ebp + 0x4c], 0
jne 0x45316a
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
dec ebx
test eax, eax
jne 0x455158
cmp ebx, dword [ebp + 0x48]
jae 0x4547d0
jmp case.0x4531a2.108
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
lea edi, [edi + eax + 3]
jmp 0x454817
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x45480d
add edi, 3
cmp dword [ebp + 0x6c], 0x62
jne 0x454929
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push 2
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
jmp 0x454b25
xor eax, eax
mov ah, byte [edi + 3]
mov al, byte [edi + 4]
mov dword [ebp + 0x3c], eax
add eax, eax
cmp eax, dword [esi + 0x14]
jl 0x454a3f
cmp ecx, 0x60
jl 0x454867
mov dword [ebp + 0x78], 2
jmp 0x4548b1
and dword [ebp + 0x78], 0
jmp 0x4548b1
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
movzx eax, byte [edi]
push dword [ebp + 0x74]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x4548a7
cmp eax, 0xfffffc1c
jne 0x455158
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
cmp byte [eax + edi], 0x53
je 0x45486d
cmp dword [ebp + 0x78], 0
jne 0x454b03
movzx eax, byte [edi]
movzx eax, byte [eax + 0x45f4e0]
add edi, eax
jmp 0x45492d
push 2
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push dword [ebp + 0x6c]
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
mov edi, dword [ebp + 0x40]
jmp 0x454929
mov ecx, dword [ebp + 0x7c]
inc ecx
push ecx
push eax
push dword [ebp + 0x74]
push dword [ebp + 0x38]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push dword [ebp + 0x6c]
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
add edi, 3
and dword [ebp + 0x78], 0
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x453141
inc dword [esi]
push 0xfffffffffffffff8
jmp 0x455157
push 0xffffffffffffffeb
jmp 0x455157
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
movzx eax, byte [edi]
push dword [ebp + 0x74]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
mov eax, 0xfffffc1a
jmp 0x455158
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
movzx eax, byte [edi]
push dword [ebp + 0x74]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
mov eax, 0xfffffc19
jmp 0x455158
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
movzx eax, byte [edi]
push dword [ebp + 0x74]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
mov dword [esi + 0x58], ebx
mov eax, 0xfffffc1b
jmp 0x455158
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
movzx eax, byte [edi]
push dword [ebp + 0x74]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
mov eax, 0xfffffc1c
jmp 0x455158
mov ecx, eax
mov eax, dword [esi + 0xc]
shl ecx, 2
mov dword [ebp + 0x44], ecx
add ecx, eax
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x48], ecx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x38], edx
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
mov dword [ebp + 0x50], ecx
mov ecx, dword [esi + 0x64]
mov dword [ebp + 0x40], ecx
mov ecx, ebx
sub ecx, dword [esi + 0x50]
cmp dword [ebp + 0x6c], 0x61
mov dword [eax], ecx
jne 0x454a81
mov dword [ebp + 0x78], 2
jmp 0x454a85
and dword [ebp + 0x78], 0
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
movzx eax, byte [edi]
push dword [ebp + 0x78]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x74]
add eax, edi
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454ac4
cmp eax, 0xfffffc1c
jne 0x455158
mov eax, dword [ebp + 0x40]
mov dword [esi + 0x64], eax
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x454a8c
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp + 0x38]
mov dword [eax + ecx], edx
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp + 0x48]
mov dword [ecx + eax + 4], edx
mov eax, dword [esi + 0x10]
sub eax, dword [ebp + 0x3c]
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp + 0x50]
mov dword [ecx + eax*4], edx
jmp case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
movzx eax, byte [edi]
push dword [ebp + 0x74]
movzx eax, byte [eax + 0x45f4e0]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.0045311f
add esp, 0x24
jmp 0x455158
cmp dword [esi + 0x3c], 0
je 0x454b42
cmp ebx, dword [ebp + 0x64]
je case.0x4531a2.108
mov eax, dword [ebp + 0x68]
mov dword [esi + 0x60], eax
mov eax, dword [ebp + 0x64]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], ebx
mov eax, edx
jmp 0x455158
mov eax, dword [esi + 0x4c]
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
add ecx, eax
cmp ecx, eax
mov dword [ebp + 0x6c], ecx
jne 0x454b72
and dword [ebp + 0x24], 0
jmp 0x454b7d
xor eax, eax
mov ah, byte [ecx + 3]
mov al, byte [ecx + 4]
mov dword [ebp + 0x24], eax
mov eax, dword [esi + 0x74]
mov dword [ebp + 0x20], eax
lea eax, [ebp + 0x20]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x10]
add edi, 3
cmp eax, 0x1e
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x34], eax
jg 0x454ba2
lea ecx, [ebp - 0x60]
mov dword [ebp + 0x30], ecx
jmp 0x454bbe
shl eax, 2
push eax
call dword [0x464504]
test eax, eax
pop ecx
mov dword [ebp + 0x30], eax
jne 0x454bbb
push 0xfffffffffffffffa
jmp 0x455157
mov eax, dword [ebp + 0x34]
shl eax, 2
push eax
push dword [esi + 0xc]
push dword [ebp + 0x30]
call fcn.00455650
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x2c], eax
mov eax, dword [ebp + 0x6c]
mov al, byte [eax]
add esp, 0xc
cmp al, 0x60
sbb edi, edi
and edi, 0xfffffffe
inc edi
inc edi
inc ecx
mov dword [ebp + 0x4c], ecx
push dword [ebp + 0x4c]
movzx eax, al
movzx eax, byte [eax + 0x45f4e0]
add eax, dword [ebp + 0x6c]
push edi
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push ebx
push eax
push ebx
call fcn.0045311f
add esp, 0x24
cmp eax, 1
je 0x454c77
test eax, eax
je 0x454c25
cmp eax, 0xfffffc1c
jne 0x455158
lea eax, [ebp + 0x20]
mov dword [esi + 0x74], eax
mov eax, dword [ebp + 0x34]
shl eax, 2
push eax
push dword [ebp + 0x30]
push dword [esi + 0xc]
call fcn.00455650
mov eax, dword [ebp + 0x6c]
xor ecx, ecx
mov ch, byte [eax + 1]
add esp, 0xc
mov cl, byte [eax + 2]
add eax, ecx
mov dword [ebp + 0x6c], eax
mov al, byte [eax]
cmp al, 0x53
je 0x454beb
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x74], eax
lea eax, [ebp - 0x60]
cmp dword [ebp + 0x30], eax
je case.0x4531a2.108
push dword [ebp + 0x30]
call dword [0x464508]
pop ecx
jmp case.0x4531a2.108
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x74], eax
lea eax, [ebp - 0x60]
cmp dword [ebp + 0x30], eax
je 0x45336d
push dword [ebp + 0x30]
call dword [0x464508]
pop ecx
jmp 0x45336d
mov eax, dword [ebp + 0x7c]
inc eax
push eax
push dword [ebp + 0x78]
push dword [ebp + 0x74]
push dword [ebp + 0x38]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push dword [ebp + 0x6c]
jmp 0x454b25
mov eax, dword [ebp + 0x68]
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], eax
jmp 0x45336d
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.004530c1
test eax, eax
pop ecx
pop ecx
je case.0x4531a2.108
add ebx, dword [ebp + 0x3c]
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454cc3
jmp 0x455158
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x6c], ecx
jge 0x454d4e
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.004530c1
test eax, eax
pop ecx
pop ecx
je 0x454d45
add ebx, dword [ebp + 0x3c]
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x50]
jl 0x454d20
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
sub ebx, dword [ebp + 0x3c]
cmp ebx, dword [ebp + 0x48]
jae 0x454d55
jmp case.0x4531a2.108
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, eax
xor edx, edx
and ecx, 7
inc edx
shl edx, cl
mov ecx, dword [ebp + 0x40]
shr eax, 3
mov al, byte [eax + ecx]
inc ebx
test al, dl
je case.0x4531a2.108
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454d86
jmp 0x455158
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
jge 0x454e1e
cmp ebx, dword [esi + 0x54]
jae 0x454e15
movzx eax, byte [ebx]
mov ecx, eax
xor edx, edx
and ecx, 7
inc edx
shl edx, cl
mov ecx, dword [ebp + 0x40]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je 0x454e15
inc ebx
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x50]
jl 0x454dea
cmp ebx, dword [ebp + 0x48]
jb case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
jne 0x455158
dec ebx
cmp ebx, dword [ebp + 0x48]
jae 0x454e25
jmp case.0x4531a2.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x454e90
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x24]
movzx eax, byte [eax + ecx]
inc ebx
cmp dword [ebp + 0x44], eax
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454e61
jmp 0x455158
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x454ee7
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp dword [ebp + 0x44], eax
jne case.0x4531a2.108
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454ebf
jmp 0x455158
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x454f45
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x24]
movzx eax, byte [eax + ecx]
inc ebx
cmp dword [ebp + 0x44], eax
je case.0x4531a2.108
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454f16
jmp 0x455158
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x454f9c
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
cmp ebx, dword [esi + 0x54]
jae case.0x4531a2.108
movzx eax, byte [ebx]
inc ebx
cmp dword [ebp + 0x44], eax
je case.0x4531a2.108
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454f74
jmp 0x455158
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push eax
jmp 0x45512e
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x4531a2.108
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae case.0x4531a2.108
test byte [ebp + 0x70], 4
jne 0x455035
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x455010
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.00418b21
add esp, 0x14
test eax, eax
jne case.0x4531a2.108
jmp 0x455035
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja 0x455035
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne 0x455035
cmp ecx, 1
je case.0x4531a2.108
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je case.0x4531a2.108
mov ecx, dword [ebp + 0x40]
movzx eax, byte [ebx]
add ecx, 0xfffffffa
inc ebx
cmp ecx, 0xe
ja case.0x455048.14
jmp dword [ecx*4 + 0x455356]
cmp eax, 0xa
je case.0x455048.12
jbe case.0x4531a2.108
cmp eax, 0xc
jbe 0x455073
cmp eax, 0xd
je 0x45507c
cmp eax, 0x85
jne case.0x4531a2.108
cmp dword [esi + 0x48], 0
jmp 0x455113
cmp ebx, dword [esi + 0x54]
jae case.0x455048.12
cmp byte [ebx], 0xa
jne case.0x455048.12
inc ebx
jmp case.0x455048.12
cmp eax, 9
je case.0x4531a2.108
cmp eax, 0x20
je case.0x4531a2.108
cmp eax, 0xa0
jmp 0x455122
cmp eax, 9
je case.0x455048.12
cmp eax, 0x20
je case.0x455048.12
cmp eax, 0xa0
jmp 0x455113
cmp eax, 0xa
jb case.0x455048.12
cmp eax, 0xd
jbe case.0x4531a2.108
cmp eax, 0x85
jmp 0x455122
cmp eax, 0xa
jb case.0x4531a2.108
cmp eax, 0xd
jbe case.0x455048.12
cmp eax, 0x85
jmp 0x455113
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 4
jmp 0x455113
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 4
jmp 0x455122
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 1
jmp 0x455113
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 1
jmp 0x455122
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 0x10
jne case.0x4531a2.108
jmp case.0x455048.12
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 0x10
je case.0x4531a2.108
inc dword [ebp + 0x6c]
push dword [ebp + 0x4c]
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push edi
push ebx
call fcn.0045311f
add esp, 0x24
test eax, eax
je 0x454fd1
jmp 0x455158
push 0xfffffffffffffff2
jmp 0x455157
push 0xfffffffffffffffb
pop eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret