Function at 0x454d53
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 0x45656c
mov edi, dword [ebp + 0x60]
mov ebx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x7c]
inc dword [esi]
cmp eax, dword [esi + 8]
jae 0x456575
test byte [ebp + 0x78], 2
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x38], eax
je 0x454d9e
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 0x454dc3
cmp ebx, dword [esi + 0x54]
jb 0x454dc3
xor edx, edx
inc edx
cmp ebx, dword [ebp + 0x64]
jbe 0x454dc6
mov dword [esi + 0x44], edx
jmp 0x454dc6
xor edx, edx
inc edx
cmp ecx, 0x6d
ja case.0x454dd6.14
movzx eax, byte [ecx + 0x456ea4]
jmp dword [eax*4 + 0x456d94]
lea eax, [edi + 3]
mov cl, byte [eax]
cmp cl, 0x64
jne 0x454e05
mov eax, dword [esi + 0x74]
xor ecx, ecx
test eax, eax
mov ch, byte [edi + 4]
mov cl, byte [edi + 5]
je 0x454e6f
cmp ecx, 0xffff
je 0x454e22
cmp ecx, dword [eax + 4]
jne 0x454e6f
jmp 0x454e22
cmp cl, 0x63
jne 0x454e29
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
shl eax, 1
cmp eax, dword [ebp + 0x68]
jge 0x454e6f
mov ecx, dword [esi + 0xc]
cmp dword [ecx + eax*4], 0
jl 0x454e6f
push 3
mov ecx, edx
pop eax
jmp 0x454e79
cmp cl, 0x65
jne 0x454e3a
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
jmp 0x454e83
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.00454d53
add esp, 0x24
cmp eax, 1
je 0x456433
test eax, eax
je 0x454e6f
cmp eax, 0xfffffc1c
jne 0x456d8c
xor ecx, ecx
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
test ecx, ecx
jne 0x456450
cmp byte [edi], 0x53
je 0x456450
add edi, 3
jmp 0x454d9e
mov edi, dword [esi + 0x74]
test edi, edi
je 0x456767
cmp dword [edi + 4], 0
jne 0x456767
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.00457b20
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 0x454d9e
movzx eax, byte [edi + 1]
mov dword [ebp + 0x70], eax
inc edi
inc edi
jmp 0x454d9e
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.00454d53
add esp, 0x24
cmp eax, 1
je 0x454f28
test eax, eax
je 0x454f19
cmp eax, 0xfffffc1c
jne 0x456d8c
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je case.0x454dd6.87
cmp byte [edi], 0x54
je case.0x454dd6.108
test byte [ebp + 0x78], 1
jne 0x454fa1
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x454f37
mov eax, dword [esi + 0x60]
add edi, 3
mov dword [ebp + 0x68], eax
jmp 0x454d9e
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.00454d53
add esp, 0x24
cmp eax, 1
je case.0x454dd6.108
test eax, eax
je 0x454f88
cmp eax, 0xfffffc1c
jne 0x456d8c
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je case.0x454dd6.88
test byte [ebp + 0x78], 1
je 0x454e8c
xor eax, eax
inc eax
jmp 0x456d8c
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
sub ebx, eax
cmp ebx, dword [esi + 0x50]
jae 0x454e8c
xor eax, eax
jmp 0x456d8c
add edi, 6
jmp 0x454d9e
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.00454d53
add esp, 0x24
cmp eax, 1
je 0x455015
test eax, eax
je 0x455006
cmp eax, 0xfffffc1c
jne 0x456d8c
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x454fd1
mov al, byte [edi]
cmp al, 0x5c
je 0x45501f
cmp al, 0x53
jne case.0x454dd6.108
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x45501f
cmp byte [edi], 0x54
mov eax, dword [esi + 0x60]
mov ebx, dword [esi + 0x5c]
mov dword [ebp + 0x68], eax
je 0x454e8c
cmp ebx, dword [ebp + 0x44]
je 0x454e8c
lea eax, [edi + 3]
cmp byte [eax], 0x18
mov dword [ebp + 0x40], eax
jne 0x455063
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 0x45650b
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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
mov edi, dword [ebp + 0x6c]
jmp 0x45655d
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je case.0x454dd6.83
jmp 0x454d9e
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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x4550d7
jmp 0x454e8c
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 0x4550ee
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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
jmp 0x454d9e
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 0x455154
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 0x455158
and dword [ebp + 0x44], 0
cmp cl, 0x57
je 0x4568e9
cmp cl, 0x58
je 0x4568e9
cmp cl, 0x59
je 0x4568e9
cmp cl, 0x5a
je 0x4568e9
cmp cl, 0x5c
je 0x4568e9
cmp cl, 0x5e
je 0x455193
cmp cl, 0x61
jne 0x455223
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 0x4551b2
mov dword [esi + 0x2c], 1
jmp 0x4551e4
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 0x4551e1
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 0x455223
cmp dword [ecx + 4], edx
jne 0x455223
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.00457330
mov eax, dword [ebp + 0x38]
mov edi, dword [edi + 8]
add esp, 0xc
mov dword [ebp + 0x70], eax
jmp 0x454d9e
cmp byte [edi], 0x54
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x70], ecx
je 0x454e8c
cmp ebx, dword [ebp + 0x44]
je 0x454e8c
cmp byte [eax], 0x60
sbb eax, eax
and eax, 0xfffffffe
inc eax
inc eax
cmp byte [edi], 0x56
mov dword [ebp + 0x78], eax
jne 0x456533
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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
cmp dword [ebp + 0x78], eax
jne 0x4568cc
mov edi, dword [ebp + 0x6c]
jmp 0x456561
cmp dword [esi + 0x30], 0
je 0x455298
cmp ebx, dword [esi + 0x50]
je case.0x454dd6.108
test byte [ebp + 0x70], 2
je case.0x454dd6.1
mov ecx, dword [esi + 0x50]
cmp ebx, ecx
je 0x455302
cmp ebx, dword [esi + 0x54]
je case.0x454dd6.108
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4552d5
cmp ebx, ecx
jbe case.0x454dd6.108
push 0
lea edx, [esi + 0x1c]
push edx
push ecx
push eax
push ebx
call fcn.0041b6f6
add esp, 0x14
test eax, eax
jmp 0x455614
mov eax, dword [esi + 0x1c]
add ecx, eax
cmp ebx, ecx
jb case.0x454dd6.108
mov ecx, ebx
sub ecx, eax
mov dl, byte [ecx]
cmp dl, byte [esi + 0x20]
jne case.0x454dd6.108
cmp eax, 1
je 0x455302
mov al, byte [ecx + 1]
cmp al, byte [esi + 0x21]
jne case.0x454dd6.108
inc edi
jmp 0x454d9e
cmp ebx, dword [esi + 0x50]
jmp 0x4552fc
mov eax, dword [esi + 0x68]
add eax, dword [esi + 0x50]
cmp ebx, eax
jmp 0x4552fc
mov dword [ebp + 0x64], ebx
jmp 0x455302
test byte [ebp + 0x70], 2
je 0x455367
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae 0x455361
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x455340
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.0041b67c
jmp 0x4552cb
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja case.0x454dd6.108
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne case.0x454dd6.108
cmp ecx, edx
je 0x455302
mov al, byte [ebx + 1]
jmp 0x4552f9
cmp dword [esi + 0x34], 0
jmp 0x4552fc
cmp dword [esi + 0x34], 0
jne case.0x454dd6.108
cmp dword [esi + 0x38], 0
jne case.0x454dd6.23
mov eax, dword [esi + 0x54]
cmp ebx, eax
je 0x455302
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4553b6
cmp ebx, eax
jae case.0x454dd6.108
push 0
lea ecx, [esi + 0x1c]
push ecx
push eax
push edx
push ebx
call fcn.0041b67c
add esp, 0x14
test eax, eax
je case.0x454dd6.108
jmp 0x4553df
cmp ebx, dword [esi + 0x54]
jb case.0x454dd6.108
jmp 0x455302
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja case.0x454dd6.108
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne case.0x454dd6.108
cmp ecx, 1
je 0x4553df
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
jne case.0x454dd6.108
mov eax, dword [esi + 0x54]
sub eax, dword [esi + 0x1c]
jmp 0x455313
cmp ebx, dword [esi + 0x50]
je 0x455400
movzx eax, byte [ebx - 1]
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 0x10
je 0x455400
mov ecx, edx
jmp 0x455402
xor ecx, ecx
cmp ebx, dword [esi + 0x54]
jae 0x455418
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 0x10
je 0x455418
xor eax, eax
inc eax
jmp 0x45541a
xor eax, eax
mov dl, byte [edi]
inc edi
cmp dl, 5
jne 0x45542b
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x455432
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
test eax, eax
je 0x454d9e
jmp case.0x454dd6.108
test byte [ebp + 0x70], 4
jne case.0x454dd6.13
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x455470
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae case.0x454dd6.13
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.0041b67c
add esp, 0x14
test eax, eax
jne case.0x454dd6.108
jmp case.0x454dd6.13
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x54]
sub ecx, eax
cmp ebx, ecx
ja case.0x454dd6.13
mov cl, byte [ebx]
cmp cl, byte [esi + 0x20]
jne case.0x454dd6.13
cmp eax, edx
je case.0x454dd6.108
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je case.0x454dd6.108
mov eax, ebx
inc ebx
cmp eax, dword [esi + 0x54]
jae case.0x454dd6.108
jmp 0x455302
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 4
jmp 0x4552fc
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 4
jmp 0x455614
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 1
jmp 0x4552fc
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 1
jmp 0x455614
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 0x10
jmp 0x4552fc
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x28]
inc ebx
test byte [eax + ecx], 0x10
jmp 0x455614
mov ecx, dword [esi + 0x54]
cmp ebx, ecx
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
je 0x455302
jbe case.0x454dd6.108
cmp eax, 0xc
jbe 0x455583
cmp eax, 0xd
je 0x45558c
cmp eax, 0x85
je 0x455583
cmp eax, 0x2027
jbe case.0x454dd6.108
cmp eax, 0x2029
ja case.0x454dd6.108
cmp dword [esi + 0x48], 0
jmp 0x4552fc
cmp ebx, ecx
jae 0x455302
cmp byte [ebx], 0xa
jne 0x455302
inc ebx
jmp 0x455302
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, 0x180e
inc ebx
cmp eax, ecx
ja 0x4555e3
je case.0x454dd6.108
cmp eax, 9
je case.0x454dd6.108
cmp eax, 0x20
je case.0x454dd6.108
cmp eax, 0xa0
je case.0x454dd6.108
cmp eax, 0x1680
jmp 0x455614
cmp eax, 0x2000
jb 0x455302
cmp eax, 0x200a
jbe case.0x454dd6.108
cmp eax, 0x202f
je case.0x454dd6.108
cmp eax, 0x205f
je case.0x454dd6.108
cmp eax, 0x3000
je case.0x454dd6.108
jmp 0x455302
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, 0x180e
inc ebx
cmp eax, ecx
ja 0x455662
je 0x455302
cmp eax, 9
je 0x455302
cmp eax, 0x20
je 0x455302
cmp eax, 0xa0
je 0x455302
cmp eax, 0x1680
jmp 0x4552fc
cmp eax, 0x2000
jb case.0x454dd6.108
cmp eax, 0x200a
jbe 0x455302
cmp eax, 0x202f
je 0x455302
cmp eax, 0x205f
je 0x455302
cmp eax, 0x3000
jmp 0x4552fc
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jb 0x455302
cmp eax, 0xd
jbe case.0x454dd6.108
cmp eax, 0x85
je case.0x454dd6.108
cmp eax, 0x2027
jbe 0x455302
cmp eax, 0x2029
jbe case.0x454dd6.108
jmp 0x455302
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jb case.0x454dd6.108
cmp eax, 0xd
jbe 0x455302
cmp eax, 0x85
je 0x455302
cmp eax, 0x2027
jbe case.0x454dd6.108
cmp eax, 0x2029
ja case.0x454dd6.108
jmp 0x455302
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 0x45574a
mov ecx, dword [esi + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
jl 0x45574a
mov edx, dword [eax + 4]
sub edx, ecx
jmp 0x455750
mov edx, dword [esi + 0x54]
sub edx, ebx
inc edx
mov al, byte [edi]
cmp al, 0x45
mov dword [ebp + 0x3c], edx
jb 0x45582b
cmp al, 0x4a
jbe 0x455799
cmp al, 0x4c
ja 0x45582b
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 0x455794
mov dword [ebp + 0x50], 0x7fffffff
add edi, 5
jmp 0x4557c7
movzx eax, al
sub eax, 0x45
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x461584]
movsx eax, byte [eax + 0x46158c]
inc edi
test eax, eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
jne 0x4557c7
mov dword [ebp + 0x50], 0x7fffffff
test edx, edx
je 0x454d9e
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x455805
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.00454cf5
test eax, eax
pop ecx
pop ecx
je case.0x454dd6.108
add ebx, dword [ebp + 0x3c]
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x44]
jle 0x4557d9
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x50]
je 0x454d9e
cmp dword [ebp + 0x48], 0
je 0x456949
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 0x456927
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.00454cf5
test eax, eax
pop ecx
pop ecx
je case.0x454dd6.108
add ebx, dword [ebp + 0x3c]
jmp 0x454d9e
lea eax, [edi + 1]
add edi, 0x21
mov dword [ebp + 0x40], eax
mov al, byte [edi]
cmp al, 0x45
jb 0x4558c4
cmp al, 0x4a
jbe 0x455895
cmp al, 0x4c
ja 0x4558c4
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 0x455890
mov dword [ebp + 0x50], 0x7fffffff
add edi, 5
jmp 0x4558cc
movzx eax, al
sub eax, 0x45
mov ecx, eax
and ecx, edx
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x461584]
movsx eax, byte [eax + 0x46158c]
inc edi
test eax, eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
jne 0x4558cc
mov dword [ebp + 0x50], 0x7fffffff
jmp 0x4558cc
mov ecx, edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x44], ecx
cmp ecx, edx
mov dword [ebp + 0x6c], edx
jl 0x455906
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.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.0x454dd6.108
inc dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x44]
cmp dword [ebp + 0x6c], ecx
jle 0x4558d3
cmp ecx, dword [ebp + 0x50]
je 0x454d9e
cmp dword [ebp + 0x48], 0
mov dword [ebp + 0x6c], ecx
je 0x456a16
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x4c], eax
push eax
jmp 0x4569f4
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp eax, edx
jl case.0x454dd6.108
mov al, byte [ebx]
inc ebx
cmp byte [edi + 1], al
jmp 0x45595c
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp eax, edx
jl case.0x454dd6.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.0x454dd6.108
jmp 0x454ede
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
mov dword [ebp + 0x50], ecx
jmp 0x45598f
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 0x4559e1
mov dword [ebp + 0x4c], 1
xor ecx, ecx
jmp 0x4559a5
xor ecx, ecx
inc ecx
mov dword [ebp + 0x4c], ecx
inc edi
jmp 0x4559da
xor eax, eax
inc eax
xor ecx, ecx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
inc edi
jmp 0x4559e1
movzx eax, byte [edi]
sub eax, 0x1e
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x461584]
movsx eax, byte [eax + 0x46158c]
inc edi
test eax, eax
mov dword [ebp + 0x50], eax
jne 0x4559e1
mov dword [ebp + 0x50], 0x7fffffff
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp ecx, eax
jg case.0x454dd6.108
movzx edx, byte [edi]
inc edi
test byte [ebp + 0x70], 1
mov dword [ebp + 0x44], edx
je 0x455aab
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 0x455a2f
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
inc ebx
cmp dword [ebp + 0x44], eax
jne case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x455a13
cmp ecx, dword [ebp + 0x50]
je 0x454d9e
cmp dword [ebp + 0x48], 0
jne 0x456a88
mov dword [ebp + 0x48], ebx
jmp 0x455a5d
cmp ebx, dword [esi + 0x54]
jae 0x455a62
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
cmp dword [ebp + 0x44], eax
jne 0x455a62
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x455a47
cmp dword [ebp + 0x4c], 0
jne 0x454d9e
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
dec ebx
test eax, eax
jne 0x456d8c
cmp ebx, dword [ebp + 0x48]
jae 0x455a7c
jmp case.0x454dd6.108
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x455ac9
movzx eax, byte [ebx]
inc ebx
cmp edx, eax
jne case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x455ab5
cmp ecx, dword [ebp + 0x50]
je 0x454d9e
cmp dword [ebp + 0x48], 0
jne 0x456ae6
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
mov eax, ecx
jge 0x455af9
cmp ebx, dword [esi + 0x54]
jae 0x455af9
movzx ecx, byte [ebx]
cmp edx, ecx
jne 0x455af9
inc ebx
inc eax
cmp eax, dword [ebp + 0x50]
jl 0x455ae6
cmp dword [ebp + 0x4c], 0
jne 0x454d9e
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
dec ebx
test eax, eax
jne 0x456d8c
cmp ebx, dword [ebp + 0x48]
jae 0x455b13
jmp case.0x454dd6.108
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx ecx, byte [ebx]
inc edi
inc ebx
test byte [ebp + 0x70], 1
je 0x455b65
mov eax, dword [esi + 0x24]
movzx edx, byte [edi]
mov cl, byte [eax + ecx]
inc edi
cmp byte [edx + eax], cl
jmp 0x455b6b
movzx eax, byte [edi]
inc edi
cmp eax, ecx
jne 0x454d9e
jmp case.0x454dd6.108
xor ecx, ecx
mov ch, byte [edi + 1]
mov cl, byte [edi + 2]
mov dword [ebp + 0x50], ecx
jmp 0x455bd3
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 0x455bd3
mov dword [ebp + 0x4c], 1
xor ecx, ecx
jmp 0x455bae
xor ecx, ecx
inc ecx
mov dword [ebp + 0x4c], ecx
inc edi
jmp 0x455bfc
xor eax, eax
inc eax
xor ecx, ecx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
inc edi
jmp 0x455c03
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 0x455c03
movzx eax, byte [edi]
sub eax, 0x2b
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x461584]
movsx eax, byte [eax + 0x46158c]
inc edi
test eax, eax
mov dword [ebp + 0x50], eax
jne 0x455c03
mov dword [ebp + 0x50], 0x7fffffff
mov eax, dword [esi + 0x54]
sub eax, ebx
cmp ecx, eax
jg case.0x454dd6.108
movzx edx, byte [edi]
inc edi
test byte [ebp + 0x70], 1
mov dword [ebp + 0x44], edx
je 0x455ccd
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 0x455c51
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
inc ebx
cmp dword [ebp + 0x44], eax
je case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x455c35
cmp ecx, dword [ebp + 0x50]
je 0x454d9e
cmp dword [ebp + 0x48], 0
jne 0x456b3d
mov dword [ebp + 0x48], ebx
jmp 0x455c7f
cmp ebx, dword [esi + 0x54]
jae 0x455c84
movzx edx, byte [ebx]
mov eax, dword [esi + 0x24]
movzx eax, byte [edx + eax]
cmp dword [ebp + 0x44], eax
je 0x455c84
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x455c69
cmp dword [ebp + 0x4c], 0
jne 0x454d9e
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
dec ebx
cmp ebx, dword [ebp + 0x48]
jae 0x455c9e
jmp case.0x454dd6.108
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x455ceb
movzx eax, byte [ebx]
inc ebx
cmp edx, eax
je case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x455cd7
cmp ecx, dword [ebp + 0x50]
je 0x454d9e
cmp dword [ebp + 0x48], 0
jne 0x456b9b
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
mov eax, ecx
jge 0x455d1b
cmp ebx, dword [esi + 0x54]
jae 0x455d1b
movzx ecx, byte [ebx]
cmp edx, ecx
je 0x455d1b
inc ebx
inc eax
cmp eax, dword [ebp + 0x50]
jl 0x455d08
cmp dword [ebp + 0x4c], 0
jne 0x454d9e
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
dec ebx
cmp ebx, dword [ebp + 0x48]
jae 0x455d35
jmp case.0x454dd6.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 0x455dce
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 0x455dce
mov dword [ebp + 0x4c], 1
xor ecx, ecx
jmp 0x455da3
xor ecx, ecx
inc ecx
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x44], ecx
inc edi
jmp 0x455dfd
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 0x455e04
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 0x455e04
movzx eax, byte [edi]
sub eax, 0x38
mov ecx, eax
and ecx, 1
mov dword [ebp + 0x48], ecx
movsx ecx, byte [eax + 0x461584]
movsx eax, byte [eax + 0x46158c]
inc edi
test eax, eax
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x50], eax
jne 0x455e04
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.0x454dd6.108
test ecx, ecx
jle 0x456106
mov eax, dword [ebp + 0x40]
add eax, 0xfffffffa
cmp eax, 0xe
ja case.0x456c7c.14
jmp dword [eax*4 + 0x456f12]
test byte [ebp + 0x70], 4
jne case.0x455e31.13
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov edx, dword [esi + 0x18]
test edx, edx
je 0x455e78
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae 0x455ea0
push 0
lea ecx, [esi + 0x1c]
push ecx
push eax
push edx
push ebx
call fcn.0041b67c
add esp, 0x14
test eax, eax
jne case.0x454dd6.108
mov ecx, dword [ebp + 0x44]
jmp 0x455ea0
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x54]
sub edx, eax
cmp ebx, edx
ja 0x455ea0
mov dl, byte [ebx]
cmp dl, byte [esi + 0x20]
jne 0x455ea0
cmp eax, 1
je case.0x454dd6.108
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je case.0x454dd6.108
inc ebx
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x455e4c
jmp 0x456106
add ebx, ecx
jmp 0x456106
cmp ecx, 1
mov dword [ebp + 0x6c], 1
jl 0x456106
cmp ebx, edx
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
je 0x455efb
jle case.0x454dd6.108
cmp eax, 0xc
jle 0x455ef1
cmp eax, 0xd
je 0x455f08
cmp eax, 0x85
jne case.0x454dd6.108
cmp dword [esi + 0x48], 0
jne case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x455ec5
jmp 0x456106
cmp ebx, edx
jae 0x455efb
cmp byte [ebx], 0xa
jne 0x455efb
inc ebx
jmp 0x455efb
xor edx, edx
inc edx
cmp ecx, edx
jl 0x456106
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 9
je case.0x454dd6.108
cmp eax, 0x20
je case.0x454dd6.108
cmp eax, 0xa0
je case.0x454dd6.108
inc edx
cmp edx, ecx
jle 0x455f1f
jmp 0x456106
xor edx, edx
inc edx
cmp ecx, edx
jl 0x456106
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 9
je 0x455f80
cmp eax, 0x20
je 0x455f80
cmp eax, 0xa0
jne case.0x454dd6.108
inc edx
cmp edx, ecx
jle 0x455f5e
jmp 0x456106
xor edx, edx
inc edx
cmp ecx, edx
jl 0x456106
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jl 0x455fbb
cmp eax, 0xd
jle case.0x454dd6.108
cmp eax, 0x85
je case.0x454dd6.108
inc edx
cmp edx, ecx
jle 0x455f95
jmp 0x456106
xor edx, edx
inc edx
cmp ecx, edx
jl 0x456106
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp eax, 0xa
jl case.0x454dd6.108
cmp eax, 0xd
jle 0x455ff6
cmp eax, 0x85
jne case.0x454dd6.108
inc edx
cmp edx, ecx
jle 0x455fd0
jmp 0x456106
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 4
inc ebx
test dl, dl
jne case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x456011
jmp 0x456106
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 4
inc ebx
test dl, dl
je case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x456041
jmp 0x456106
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 1
inc ebx
test dl, dl
jne case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x456071
jmp 0x456106
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 1
inc ebx
test dl, dl
je case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x45609a
jmp 0x456106
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 0x10
inc ebx
test dl, dl
jne case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x4560c3
jmp 0x456106
xor eax, eax
inc eax
cmp ecx, eax
mov dword [ebp + 0x6c], eax
jl 0x456106
mov eax, dword [esi + 0x28]
movzx edx, byte [ebx]
mov dl, byte [edx + eax]
and dl, 0x10
inc ebx
test dl, dl
je case.0x454dd6.108
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], ecx
jle 0x4560ec
mov edx, dword [ebp + 0x50]
cmp ecx, edx
je 0x454d9e
cmp dword [ebp + 0x48], 0
jne 0x456bf2
mov eax, dword [ebp + 0x40]
add eax, 0xfffffffa
cmp eax, 0xe
mov dword [ebp + 0x48], ebx
ja case.0x456c7c.14
jmp dword [eax*4 + 0x456f4e]
test byte [ebp + 0x70], 4
jne case.0x45612d.13
cmp ecx, edx
mov dword [ebp + 0x6c], ecx
jge 0x4563ea
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae 0x4563ea
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x456172
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.0041b67c
add esp, 0x14
test eax, eax
jne 0x4563ea
jmp 0x456197
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja 0x456197
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne 0x456197
cmp ecx, 1
je 0x4563ea
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je 0x4563ea
inc ebx
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x50]
jl 0x456145
jmp 0x4563ea
mov eax, dword [esi + 0x54]
sub edx, ecx
mov ecx, edx
sub eax, ebx
cmp ecx, eax
jbe 0x4561b7
mov ecx, eax
add ebx, ecx
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4563ea
movzx eax, byte [ebx]
cmp eax, 0xd
jne 0x4561e9
inc ebx
cmp ebx, edx
jae 0x4563ea
cmp byte [ebx], 0xa
jne 0x45620e
jmp 0x45620d
cmp eax, 0xa
je 0x45620d
cmp dword [esi + 0x48], 0
jne 0x4563ea
cmp eax, 0xb
je 0x45620d
cmp eax, 0xc
je 0x45620d
cmp eax, 0x85
jne 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4561c9
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4563ea
movzx eax, byte [ebx]
cmp eax, 9
je 0x4563ea
cmp eax, 0x20
je 0x4563ea
cmp eax, 0xa0
je 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x456224
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4563ea
movzx eax, byte [ebx]
cmp eax, 9
je 0x456283
cmp eax, 0x20
je 0x456283
cmp eax, 0xa0
jne 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x456263
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4563ea
movzx eax, byte [ebx]
cmp eax, 0xa
je 0x4563ea
cmp eax, 0xb
je 0x4563ea
cmp eax, 0xc
je 0x4563ea
cmp eax, 0xd
je 0x4563ea
cmp eax, 0x85
je 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x45629a
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
mov edx, dword [esi + 0x54]
cmp ebx, edx
jae 0x4563ea
movzx eax, byte [ebx]
cmp eax, 0xa
je 0x456315
cmp eax, 0xb
je 0x456315
cmp eax, 0xc
je 0x456315
cmp eax, 0xd
je 0x456315
cmp eax, 0x85
jne 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4562eb
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
cmp ebx, dword [esi + 0x54]
jae 0x4563ea
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 4
jne 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x456329
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
cmp ebx, dword [esi + 0x54]
jae 0x4563ea
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 4
je 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x456356
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
cmp ebx, dword [esi + 0x54]
jae 0x4563ea
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 1
jne 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x456378
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
cmp ebx, dword [esi + 0x54]
jae 0x4563ea
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 1
je 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x456396
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
cmp ebx, dword [esi + 0x54]
jae 0x4563ea
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 0x10
jne 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4563b4
jmp 0x4563ea
cmp ecx, edx
jge 0x4563ea
cmp ebx, dword [esi + 0x54]
jae 0x4563ea
movzx eax, byte [ebx]
mov edx, dword [esi + 0x28]
test byte [eax + edx], 0x10
je 0x4563ea
inc ebx
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x4563d2
cmp dword [ebp + 0x4c], 0
jne 0x454d9e
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
dec ebx
test eax, eax
jne 0x456d8c
cmp ebx, dword [ebp + 0x48]
jae 0x456404
jmp case.0x454dd6.108
xor eax, eax
mov ah, byte [edi + 4]
mov al, byte [edi + 5]
lea edi, [edi + eax + 3]
jmp 0x45644b
xor eax, eax
mov ah, byte [edi + 1]
mov al, byte [edi + 2]
add edi, eax
cmp byte [edi], 0x53
je 0x456441
add edi, 3
cmp dword [ebp + 0x6c], 0x62
jne 0x45655d
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 0x456759
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 0x456673
cmp ecx, 0x60
jl 0x45649b
mov dword [ebp + 0x78], 2
jmp 0x4564e5
and dword [ebp + 0x78], 0
jmp 0x4564e5
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 + 0x461598]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.00454d53
add esp, 0x24
test eax, eax
je 0x4564db
cmp eax, 0xfffffc1c
jne 0x456d8c
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 0x4564a1
cmp dword [ebp + 0x78], 0
jne 0x456737
movzx eax, byte [edi]
movzx eax, byte [eax + 0x461598]
add edi, eax
jmp 0x456561
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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
mov edi, dword [ebp + 0x40]
jmp 0x45655d
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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
add edi, 3
and dword [ebp + 0x78], 0
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x454d75
inc dword [esi]
push 0xfffffffffffffff8
jmp 0x456d8b
push 0xffffffffffffffeb
jmp 0x456d8b
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 + 0x461598]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
mov eax, 0xfffffc1a
jmp 0x456d8c
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 + 0x461598]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
mov eax, 0xfffffc19
jmp 0x456d8c
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 + 0x461598]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
mov dword [esi + 0x58], ebx
mov eax, 0xfffffc1b
jmp 0x456d8c
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 + 0x461598]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
mov eax, 0xfffffc1c
jmp 0x456d8c
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 0x4566b5
mov dword [ebp + 0x78], 2
jmp 0x4566b9
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 + 0x461598]
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.00454d53
add esp, 0x24
test eax, eax
je 0x4566f8
cmp eax, 0xfffffc1c
jne 0x456d8c
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 0x4566c0
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.0x454dd6.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 + 0x461598]
push dword [ebp + 0x70]
add eax, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x64]
push eax
push ebx
call fcn.00454d53
add esp, 0x24
jmp 0x456d8c
cmp dword [esi + 0x3c], 0
je 0x456776
cmp ebx, dword [ebp + 0x64]
je case.0x454dd6.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 0x456d8c
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 0x4567a6
and dword [ebp + 0x24], 0
jmp 0x4567b1
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 0x4567d6
lea ecx, [ebp - 0x60]
mov dword [ebp + 0x30], ecx
jmp 0x4567f2
shl eax, 2
push eax
call dword [0x466534]
test eax, eax
pop ecx
mov dword [ebp + 0x30], eax
jne 0x4567ef
push 0xfffffffffffffffa
jmp 0x456d8b
mov eax, dword [ebp + 0x34]
shl eax, 2
push eax
push dword [esi + 0xc]
push dword [ebp + 0x30]
call fcn.00457330
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 + 0x461598]
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.00454d53
add esp, 0x24
cmp eax, 1
je 0x4568ab
test eax, eax
je 0x456859
cmp eax, 0xfffffc1c
jne 0x456d8c
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.00457330
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 0x45681f
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x74], eax
lea eax, [ebp - 0x60]
cmp dword [ebp + 0x30], eax
je case.0x454dd6.108
push dword [ebp + 0x30]
call dword [0x466538]
pop ecx
jmp case.0x454dd6.108
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x74], eax
lea eax, [ebp - 0x60]
cmp dword [ebp + 0x30], eax
je 0x454fa1
push dword [ebp + 0x30]
call dword [0x466538]
pop ecx
jmp 0x454fa1
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 0x456759
mov eax, dword [ebp + 0x68]
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], eax
jmp 0x454fa1
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.00454cf5
test eax, eax
pop ecx
pop ecx
je case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x4568f7
jmp 0x456d8c
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x6c], ecx
jge 0x456982
push dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ebx
mov ecx, esi
call fcn.00454cf5
test eax, eax
pop ecx
pop ecx
je 0x456979
add ebx, dword [ebp + 0x3c]
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x50]
jl 0x456954
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
sub ebx, dword [ebp + 0x3c]
cmp ebx, dword [ebp + 0x48]
jae 0x456989
jmp case.0x454dd6.108
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.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.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x4569ba
jmp 0x456d8c
cmp ecx, dword [ebp + 0x50]
mov dword [ebp + 0x48], ebx
jge 0x456a52
cmp ebx, dword [esi + 0x54]
jae 0x456a49
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 0x456a49
inc ebx
inc dword [ebp + 0x6c]
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp + 0x50]
jl 0x456a1e
cmp ebx, dword [ebp + 0x48]
jb case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
jne 0x456d8c
dec ebx
cmp ebx, dword [ebp + 0x48]
jae 0x456a59
jmp case.0x454dd6.108
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x456ac4
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x24]
movzx eax, byte [eax + ecx]
inc ebx
cmp dword [ebp + 0x44], eax
jne case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x456a95
jmp 0x456d8c
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x456b1b
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp dword [ebp + 0x44], eax
jne case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x456af3
jmp 0x456d8c
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x456b79
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x24]
movzx eax, byte [eax + ecx]
inc ebx
cmp dword [ebp + 0x44], eax
je case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x456b4a
jmp 0x456d8c
mov eax, dword [ebp + 0x7c]
inc eax
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x4c], eax
push eax
jmp 0x456bd0
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
cmp ebx, dword [esi + 0x54]
jae case.0x454dd6.108
movzx eax, byte [ebx]
inc ebx
cmp dword [ebp + 0x44], eax
je case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x456ba8
jmp 0x456d8c
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 0x456d62
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x6c], eax
jge case.0x454dd6.108
mov eax, dword [esi + 0x54]
cmp ebx, eax
jae case.0x454dd6.108
test byte [ebp + 0x70], 4
jne 0x456c69
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x456c44
push 0
lea edx, [esi + 0x1c]
push edx
push eax
push ecx
push ebx
call fcn.0041b67c
add esp, 0x14
test eax, eax
jne case.0x454dd6.108
jmp 0x456c69
mov ecx, dword [esi + 0x1c]
sub eax, ecx
cmp ebx, eax
ja 0x456c69
mov al, byte [ebx]
cmp al, byte [esi + 0x20]
jne 0x456c69
cmp ecx, 1
je case.0x454dd6.108
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x21]
je case.0x454dd6.108
mov ecx, dword [ebp + 0x40]
movzx eax, byte [ebx]
add ecx, 0xfffffffa
inc ebx
cmp ecx, 0xe
ja case.0x456c7c.14
jmp dword [ecx*4 + 0x456f8a]
cmp eax, 0xa
je case.0x456c7c.12
jbe case.0x454dd6.108
cmp eax, 0xc
jbe 0x456ca7
cmp eax, 0xd
je 0x456cb0
cmp eax, 0x85
jne case.0x454dd6.108
cmp dword [esi + 0x48], 0
jmp 0x456d47
cmp ebx, dword [esi + 0x54]
jae case.0x456c7c.12
cmp byte [ebx], 0xa
jne case.0x456c7c.12
inc ebx
jmp case.0x456c7c.12
cmp eax, 9
je case.0x454dd6.108
cmp eax, 0x20
je case.0x454dd6.108
cmp eax, 0xa0
jmp 0x456d56
cmp eax, 9
je case.0x456c7c.12
cmp eax, 0x20
je case.0x456c7c.12
cmp eax, 0xa0
jmp 0x456d47
cmp eax, 0xa
jb case.0x456c7c.12
cmp eax, 0xd
jbe case.0x454dd6.108
cmp eax, 0x85
jmp 0x456d56
cmp eax, 0xa
jb case.0x454dd6.108
cmp eax, 0xd
jbe case.0x456c7c.12
cmp eax, 0x85
jmp 0x456d47
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 4
jmp 0x456d47
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 4
jmp 0x456d56
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 1
jmp 0x456d47
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 1
jmp 0x456d56
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 0x10
jne case.0x454dd6.108
jmp case.0x456c7c.12
mov ecx, dword [esi + 0x28]
test byte [eax + ecx], 0x10
je case.0x454dd6.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.00454d53
add esp, 0x24
test eax, eax
je 0x456c05
jmp 0x456d8c
push 0xfffffffffffffff2
jmp 0x456d8b
push 0xfffffffffffffffb
pop eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret