Function at 0x40e0a0
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x10c]
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jae 0x410054
mov ebx, dword [esp + 0x100]
mov ebp, dword [esp + 0xfc]
mov ecx, dword [esp + 0x11c]
add dword [edi], 1
cmp ecx, dword [edi + 8]
jae 0x410067
test byte [esp + 0x118], 2
mov edx, dword [esp + 0x110]
mov dword [esp + 0x28], edx
je 0x40e10c
mov eax, dword [esp + 0x114]
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x114], ecx
movzx edx, byte [ebx]
xor ecx, ecx
cmp dword [edi + 0x44], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
je 0x40e13b
cmp ebp, dword [edi + 0x58]
jb 0x40e13b
mov esi, dword [esp + 0x104]
cmp ebp, esi
jbe 0x40e142
mov dword [edi + 0x48], 1
jmp 0x40e142
mov esi, dword [esp + 0x104]
cmp edx, 0x6d
ja case.0x40e152.14
movzx eax, byte [edx + 0x410cb8]
jmp dword [eax*4 + 0x410ba8]
mov cl, byte [ebx + 3]
cmp cl, 0x64
lea eax, [ebx + 3]
jne 0x40e18c
mov eax, dword [edi + 0x78]
xor ecx, ecx
test eax, eax
mov ch, byte [ebx + 4]
mov cl, byte [ebx + 5]
je 0x40e1ad
cmp ecx, 0xffff
je 0x40e180
cmp ecx, dword [eax + 4]
jne 0x40e1ad
mov ecx, 1
mov eax, 3
jmp 0x40e1b7
cmp cl, 0x63
jne 0x40e1d2
xor eax, eax
mov ah, byte [ebx + 4]
mov al, byte [ebx + 5]
add eax, eax
cmp eax, dword [esp + 0x108]
jge 0x40e1ad
mov ecx, dword [edi + 0xc]
cmp dword [ecx + eax*4], 0
jge 0x40e180
xor ecx, ecx
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
test ecx, ecx
jne 0x40fde5
cmp byte [ebx], 0x53
je 0x40fde5
add ebx, 3
jmp 0x40e10c
cmp cl, 0x65
jne 0x40e1e3
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
jmp 0x40e1c1
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x110]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x10c]
push 1
push 0
push edx
push edi
push ecx
push esi
push eax
push ebp
call fcn.0040e0a0
add esp, 0x24
cmp eax, 1
je 0x40fdbf
test eax, eax
je 0x40e226
cmp eax, 0xfffffc1c
jne 0x410b9a
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
add ebx, edx
mov edx, dword [esp + 0x14]
jmp 0x40e1c1
mov ebx, dword [edi + 0x78]
cmp ebx, ecx
je 0x41032a
cmp dword [ebx + 4], ecx
jne 0x41032a
mov eax, dword [ebx]
mov dword [edi + 0x78], eax
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
mov eax, dword [edi + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.0041bcc0
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + 8]
add esp, 0xc
mov dword [esp + 0x104], ecx
mov dword [esp + 0x110], edx
jmp 0x40e10c
movzx eax, byte [ebx + 1]
mov dword [esp + 0x110], eax
add ebx, 2
jmp 0x40e10c
mov esi, dword [esp + 0x11c]
add esi, 1
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x104]
push esi
push 0
push 0
push ecx
push edi
push edx
push eax
lea ecx, [ebx + 3]
push ecx
push ebp
call fcn.0040e0a0
add esp, 0x24
cmp eax, 1
je 0x40e2ef
test eax, eax
je 0x40e2e0
cmp eax, 0xfffffc1c
jne 0x410b9a
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
add ebx, edx
cmp byte [ebx], 0x53
je 0x40e2a1
cmp byte [ebx], 0x54
je case.0x410a67.14
test byte [esp + 0x118], 1
jne 0x410343
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x53
je 0x40e306
mov ecx, dword [edi + 0x64]
add ebx, 3
mov dword [esp + 0x108], ecx
jmp 0x40e10c
mov esi, dword [esp + 0x11c]
add esi, 1
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x104]
push esi
push 0
push 0
push edx
push edi
push eax
push ecx
lea edx, [ebx + 3]
push edx
push ebp
call fcn.0040e0a0
add esp, 0x24
cmp eax, 1
je case.0x410a67.14
test eax, eax
je 0x40e374
cmp eax, 0xfffffc1c
jne 0x410b9a
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x53
je 0x40e331
test byte [esp + 0x118], 1
jne 0x410343
add ebx, 3
jmp 0x40e10c
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
sub ebp, ecx
cmp ebp, dword [edi + 0x54]
jb case.0x410a67.14
add ebx, 3
jmp 0x40e10c
cmp dword [sym.td.exe_pcre_callout], ecx
je 0x40e447
movzx edx, byte [ebx + 1]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x54]
sub ecx, eax
sub esi, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edx
mov edx, ebp
sub edx, eax
xor eax, eax
mov ah, byte [ebx + 2]
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov ch, byte [ebx + 4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x50], 1
mov dword [esp + 0x64], esi
mov al, byte [ebx + 3]
mov cl, byte [ebx + 5]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x108]
cdq
sub eax, edx
mov edx, dword [edi + 0x68]
sar eax, 1
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 0x7c]
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
call dword [sym.td.exe_pcre_callout]
add esp, 4
test eax, eax
jg case.0x410a67.14
jl 0x410b9a
add ebx, 6
jmp 0x40e10c
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebp
add esi, 1
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x108]
push esi
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
lea eax, [ebx + 3]
push eax
push ebp
call fcn.0040e0a0
add esp, 0x24
cmp eax, 1
je 0x40e4b5
test eax, eax
je 0x40e4a6
cmp eax, 0xfffffc1c
jne 0x410b9a
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ebx, ecx
cmp byte [ebx], 0x53
je 0x40e461
mov al, byte [ebx]
cmp al, 0x5c
je 0x40e4c3
cmp al, 0x53
jne case.0x410a67.14
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
add ebx, edx
cmp byte [ebx], 0x53
je 0x40e4c3
cmp byte [ebx], 0x54
mov ecx, dword [edi + 0x64]
mov ebp, dword [edi + 0x60]
mov dword [esp + 0x108], ecx
je 0x40e4ee
cmp ebp, dword [esp + 0x24]
jne 0x40ff01
add ebx, 3
jmp 0x40e10c
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x53
je case.0x40e152.83
jmp 0x40e10c
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x10c]
push 0
push edx
push eax
push edi
push ecx
push esi
add ebx, 1
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
xor edx, edx
mov dh, byte [ebx + 1]
mov dl, byte [ebx + 2]
add ebx, edx
cmp byte [ebx], 0x53
je 0x40e546
add ebx, 3
jmp 0x40e10c
add ebx, 1
mov eax, ebx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x53
je 0x40e562
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x114]
add edx, 1
push edx
mov edx, dword [esp + 0x114]
push 0
push ecx
mov ecx, dword [esp + 0x114]
push edx
push edi
push ecx
push esi
add eax, 3
push eax
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
jmp 0x40e10c
xor edx, edx
mov dh, byte [ebx + 1]
mov esi, ebx
mov dl, byte [ebx + 2]
sub esi, edx
mov al, byte [esi]
cmp al, 0x60
mov dword [esp + 0x1c], esi
jb 0x40e5dd
mov ecx, dword [esp + 0x114]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x114], ecx
jmp 0x40e5df
xor edx, edx
cmp al, 0x57
je 0x410532
cmp al, 0x58
je 0x410532
cmp al, 0x59
je 0x410532
cmp al, 0x5a
je 0x410532
cmp al, 0x5c
je 0x410532
cmp al, 0x5e
je 0x40e613
cmp al, 0x61
jne 0x40e6b0
xor ecx, ecx
mov ch, byte [esi + 3]
mov cl, byte [esi + 4]
lea eax, [ecx + ecx]
cmp eax, dword [edi + 0x14]
mov dword [esp + 0x20], ecx
mov dword [edi + 0x68], ecx
jl 0x40e633
mov dword [edi + 0x2c], 1
jmp 0x40e666
mov esi, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub esi, dword [esp + 0x20]
mov esi, dword [ecx + esi*4]
mov dword [ecx + eax*4], esi
mov esi, dword [edi + 0xc]
mov ecx, ebp
sub ecx, dword [edi + 0x54]
cmp dword [esp + 0x108], eax
mov dword [esi + eax*4 + 4], ecx
mov ecx, dword [esp + 0x20]
jg 0x40e666
add eax, 2
mov dword [esp + 0x108], eax
mov esi, dword [edi + 0x78]
test esi, esi
je 0x40e6ac
cmp dword [esi + 4], ecx
jne 0x40e6ac
mov edx, dword [esi]
mov dword [edi + 0x78], edx
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
add ecx, ecx
add ecx, ecx
push ecx
mov dword [esp + 0x108], eax
mov eax, dword [edi + 0xc]
push edx
push eax
call fcn.0041ec90
mov ecx, dword [esp + 0x34]
mov ebx, dword [esi + 8]
add esp, 0xc
mov dword [esp + 0x110], ecx
jmp 0x40e10c
mov esi, dword [esp + 0x1c]
cmp byte [ebx], 0x54
mov eax, dword [esp + 0x28]
mov dword [esp + 0x110], eax
je 0x40e6c8
cmp ebp, edx
jne 0x40ff95
add ebx, 3
jmp 0x40e10c
cmp dword [edi + 0x30], ecx
je 0x40e6de
cmp ebp, dword [edi + 0x54]
je case.0x410a67.14
test byte [esp + 0x110], 2
je case.0x40e152.1
mov esi, dword [edi + 0x54]
cmp ebp, esi
je 0x40e755
cmp ebp, dword [edi + 0x58]
je case.0x410a67.14
mov eax, dword [edi + 0x18]
test eax, eax
je 0x40e727
cmp ebp, esi
jbe case.0x410a67.14
push 0
lea edx, [edi + 0x1c]
push eax
mov ecx, ebp
call fcn.00416ce0
add esp, 8
test eax, eax
je case.0x410a67.14
add ebx, 1
jmp 0x40e10c
mov eax, dword [edi + 0x1c]
lea ecx, [eax + esi]
cmp ebp, ecx
jb case.0x410a67.14
mov esi, ebp
sub esi, eax
mov dl, byte [esi]
cmp dl, byte [edi + 0x20]
jne case.0x410a67.14
cmp eax, 1
je 0x40e755
mov al, byte [esi + 1]
cmp al, byte [edi + 0x21]
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x54]
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
mov ecx, dword [edi + 0x6c]
add ecx, dword [edi + 0x54]
cmp ebp, ecx
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
mov dword [esp + 0x104], ebp
add ebx, 1
jmp 0x40e10c
test byte [esp + 0x110], 2
je 0x40e810
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40e7ff
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x40e7d9
mov edi, dword [esp + 0x10c]
push ecx
add edi, 0x1c
xor edx, edx
mov ecx, ebp
call fcn.00416c20
add esp, 4
test eax, eax
je case.0x410a67.14
mov edi, dword [esp + 0x10c]
add ebx, 1
jmp 0x40e10c
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp ebp, eax
ja case.0x410a67.14
mov dl, byte [ebp]
cmp dl, byte [edi + 0x20]
jne case.0x410a67.14
cmp ecx, 1
je 0x40e808
mov al, byte [ebp + 1]
cmp al, byte [edi + 0x21]
jmp 0x40e802
cmp dword [edi + 0x34], ecx
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp dword [edi + 0x34], ecx
jne case.0x410a67.14
cmp dword [edi + 0x3c], ecx
jne case.0x40e152.23
mov eax, dword [edi + 0x58]
cmp ebp, eax
je 0x40e89c
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x40e862
cmp ebp, eax
jae case.0x410a67.14
mov esi, dword [esp + 0x10c]
add esi, 0x1c
push ecx
xor edx, edx
mov edi, esi
mov ecx, ebp
call fcn.00416c20
add esp, 4
test eax, eax
je case.0x410a67.14
mov edi, dword [esp + 0x10c]
jmp 0x40e88f
mov ecx, dword [edi + 0x1c]
lea esi, [edi + 0x1c]
sub eax, ecx
cmp ebp, eax
ja case.0x410a67.14
mov dl, byte [ebp]
cmp dl, byte [edi + 0x20]
jne case.0x410a67.14
cmp ecx, 1
je 0x40e88f
mov al, byte [ebp + 1]
cmp al, byte [edi + 0x21]
jne case.0x410a67.14
mov ecx, dword [edi + 0x58]
sub ecx, dword [esi]
cmp ebp, ecx
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jb case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x54]
je 0x40e8ce
movzx edx, byte [ebp - 1]
mov eax, dword [edi + 0x28]
test byte [edx + eax], 0x10
je 0x40e8ce
mov esi, 1
jmp 0x40e8d0
xor esi, esi
cmp ebp, dword [edi + 0x58]
jae 0x40e8e9
movzx edx, byte [ebp]
mov eax, dword [edi + 0x28]
test byte [edx + eax], 0x10
je 0x40e8e9
mov eax, 1
jmp 0x40e8eb
xor eax, eax
mov dl, byte [ebx]
add ebx, 1
cmp dl, 5
jne 0x40e8fe
xor edx, edx
cmp eax, esi
sete dl
jmp 0x40e905
xor edx, edx
cmp eax, esi
setne dl
mov eax, edx
cmp eax, ecx
je 0x40e10c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
test byte [esp + 0x110], 4
jne 0x40e985
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x40e95c
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40e985
mov edi, dword [esp + 0x10c]
push ecx
add edi, 0x1c
xor edx, edx
mov ecx, ebp
call fcn.00416c20
add esp, 4
test eax, eax
jne case.0x410a67.14
mov edi, dword [esp + 0x10c]
jmp 0x40e985
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x58]
sub ecx, eax
cmp ebp, ecx
ja 0x40e985
mov dl, byte [ebp]
cmp dl, byte [edi + 0x20]
jne 0x40e985
cmp eax, 1
je case.0x410a67.14
mov al, byte [ebp + 1]
cmp al, byte [edi + 0x21]
je case.0x410a67.14
mov ecx, ebp
add ebp, 1
cmp ecx, dword [edi + 0x58]
jae case.0x410a67.14
add ebx, 1
jmp 0x40e10c
mov edx, ebp
add ebp, 1
cmp edx, dword [edi + 0x58]
jae case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov ecx, dword [edi + 0x28]
add ebp, 1
test byte [eax + ecx], 4
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov edx, dword [edi + 0x28]
add ebp, 1
test byte [eax + edx], 4
je case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov ecx, dword [edi + 0x28]
add ebp, 1
test byte [eax + ecx], 1
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov edx, dword [edi + 0x28]
add ebp, 1
test byte [eax + edx], 1
je case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov ecx, dword [edi + 0x28]
add ebp, 1
test byte [eax + ecx], 0x10
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov edx, dword [edi + 0x28]
add ebp, 1
test byte [eax + edx], 0x10
je case.0x410a67.14
add ebx, 1
jmp 0x40e10c
mov ecx, dword [edi + 0x58]
cmp ebp, ecx
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0xd
ja 0x40eacd
je 0x40eab8
cmp eax, 0xa
je 0x40eaf4
jbe case.0x410a67.14
cmp eax, 0xc
jmp 0x40eae4
cmp ebp, ecx
jae 0x40eaf4
cmp byte [ebp], 0xa
jne 0x40eaf4
add ebp, 1
add ebx, 1
jmp 0x40e10c
cmp eax, 0x85
je 0x40eaea
cmp eax, 0x2027
jbe case.0x410a67.14
cmp eax, 0x2029
ja case.0x410a67.14
cmp dword [edi + 0x4c], 0
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0x180e
ja 0x40eb3b
je case.0x410a67.14
cmp eax, 0xa0
ja 0x40eb34
je case.0x410a67.14
cmp eax, 9
je case.0x410a67.14
cmp eax, 0x20
jmp 0x40eb66
cmp eax, 0x1680
jmp 0x40eb66
cmp eax, 0x205f
ja 0x40eb61
je case.0x410a67.14
cmp eax, 0x2000
jb 0x40eb6c
cmp eax, 0x200a
jbe case.0x410a67.14
cmp eax, 0x202f
jmp 0x40eb66
cmp eax, 0x3000
je case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0x180e
ja 0x40eba7
je 0x40ebd4
cmp eax, 0xa0
ja 0x40eba0
je 0x40ebd4
cmp eax, 9
je 0x40ebd4
cmp eax, 0x20
jmp 0x40ebce
cmp eax, 0x1680
jmp 0x40ebce
cmp eax, 0x205f
ja 0x40ebc9
je 0x40ebd4
cmp eax, 0x2000
jb case.0x410a67.14
cmp eax, 0x200a
jbe 0x40ebd4
cmp eax, 0x202f
jmp 0x40ebce
cmp eax, 0x3000
jne case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0x85
ja 0x40ec03
je case.0x410a67.14
cmp eax, 0xa
jb 0x40ec15
cmp eax, 0xd
jmp 0x40ec0f
cmp eax, 0x2028
jb 0x40ec15
cmp eax, 0x2029
jbe case.0x410a67.14
add ebx, 1
jmp 0x40e10c
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0x85
ja 0x40ec44
je 0x40ec5a
cmp eax, 0xa
jb case.0x410a67.14
cmp eax, 0xd
jmp 0x40ec54
cmp eax, 0x2028
jb case.0x410a67.14
cmp eax, 0x2029
ja case.0x410a67.14
add ebx, 1
jmp 0x40e10c
xor eax, eax
mov ah, byte [ebx + 1]
add ebx, 3
mov al, byte [ebx - 1]
add eax, eax
cmp eax, dword [esp + 0x108]
mov dword [esp + 0x24], eax
jge 0x40ec8f
mov ecx, dword [edi + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
jl 0x40ec8f
mov esi, dword [eax + 4]
sub esi, ecx
jmp 0x40ec97
mov esi, dword [edi + 0x58]
sub esi, ebp
add esi, 1
mov cl, byte [ebx]
movzx eax, cl
lea edx, [eax - 0x45]
cmp edx, 7
ja case.default.0x40ecaf
movzx edx, byte [edx + 0x410d30]
jmp dword [edx*4 + 0x410d28]
add eax, 0xffffffbb
mov ecx, eax
and ecx, 1
mov dword [esp + 0x20], ecx
movsx ecx, byte [eax + 0x4302f8]
movsx eax, byte [eax + 0x430300]
add ebx, 1
test eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
jne 0x40ed1c
mov dword [esp + 0x14], 0x7fffffff
jmp 0x40ed1c
xor edx, edx
cmp cl, 0x4c
sete dl
xor eax, eax
mov ah, byte [ebx + 1]
mov dword [esp + 0x20], edx
mov al, byte [ebx + 2]
mov dword [esp + 0x1c], eax
xor eax, eax
mov ah, byte [ebx + 3]
mov al, byte [ebx + 4]
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40ed19
mov dword [esp + 0x14], 0x7fffffff
add ebx, 5
test esi, esi
je 0x40e10c
mov eax, 1
cmp dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
jl 0x40ed67
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x24]
push ecx
push ebp
mov ecx, edi
mov eax, esi
call fcn.0040e020
add esp, 8
test eax, eax
je case.0x410a67.14
mov eax, dword [esp + 0x18]
add eax, 1
add ebp, esi
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jle 0x40ed33
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
je 0x40e10c
cmp dword [esp + 0x20], 0
je 0x41054f
mov ecx, dword [esp + 0x110]
mov edx, eax
mov eax, dword [esp + 0x11c]
add eax, 1
push eax
push 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x11c]
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
lea esp, [esp]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18], ecx
jge case.0x410a67.14
mov edx, dword [esp + 0x110]
push edx
mov edx, dword [esp + 0x28]
push ebp
mov ecx, edi
mov eax, esi
call fcn.0040e020
add esp, 8
test eax, eax
je case.0x410a67.14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
add dword [esp + 0x18], 1
push eax
mov eax, dword [esp + 0x10c]
push 0
push ecx
mov ecx, dword [esp + 0x110]
push edx
push edi
push eax
push ecx
add ebp, esi
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x40edd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [esp + 0x110]
push edx
mov edx, dword [esp + 0x28]
push ebp
mov ecx, edi
mov eax, esi
call fcn.0040e020
add esp, 8
test eax, eax
je case.0x410a67.14
add ebp, esi
jmp 0x40e10c
mov cl, byte [ebx + 0x21]
lea eax, [ebx + 1]
add ebx, 0x21
mov dword [esp + 0x24], eax
movzx eax, cl
lea edx, [eax - 0x45]
cmp edx, 7
ja case.default.0x40ee92
movzx edx, byte [edx + 0x410d40]
jmp dword [edx*4 + 0x410d38]
movsx esi, byte [eax + 0x4302bb]
movsx edx, byte [eax + 0x4302b3]
add eax, 0xffffffbb
mov ecx, eax
and ecx, 1
add ebx, 1
test esi, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
jne 0x40ef04
mov esi, 0x7fffffff
jmp 0x40ef00
xor eax, eax
cmp cl, 0x4c
sete al
xor ecx, ecx
mov ch, byte [ebx + 3]
xor edx, edx
mov dh, byte [ebx + 1]
mov dword [esp + 0x20], eax
mov cl, byte [ebx + 4]
mov dl, byte [ebx + 2]
mov esi, ecx
test esi, esi
mov dword [esp + 0x14], ecx
jne 0x40eef4
mov esi, 0x7fffffff
mov dword [esp + 0x14], esi
add ebx, 5
jmp 0x40ef04
mov esi, 1
mov edx, esi
mov dword [esp + 0x14], esi
cmp edx, 1
mov dword [esp + 0x18], 1
jl 0x40ef52
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx esi, byte [ebp]
mov ecx, esi
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x24]
shr esi, 3
mov cl, byte [esi + ecx]
add ebp, 1
test cl, al
je case.0x410a67.14
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, edx
mov dword [esp + 0x18], eax
jle 0x40ef11
mov esi, dword [esp + 0x14]
cmp edx, esi
je 0x40e10c
cmp dword [esp + 0x20], 0
mov dword [esp + 0x18], edx
je 0x4105ee
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x108]
add eax, 1
push eax
push 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
lea ecx, [ecx]
cmp dword [esp + 0x18], esi
jge case.0x410a67.14
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x24]
shr eax, 3
mov al, byte [eax + ecx]
add ebp, 1
test al, dl
je case.0x410a67.14
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
add dword [esp + 0x18], 1
push ecx
mov ecx, dword [esp + 0x10c]
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x40efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [edi + 0x58]
sub edx, ebp
cmp edx, 1
jl case.0x410a67.14
mov al, byte [ebp]
add ebp, 1
cmp byte [ebx + 1], al
jne case.0x410a67.14
add ebx, 2
jmp 0x40e10c
mov ecx, dword [edi + 0x58]
sub ecx, ebp
cmp ecx, 1
jl case.0x410a67.14
movzx ecx, byte [ebp]
mov eax, dword [edi + 0x24]
movzx edx, byte [ebx + 1]
mov cl, byte [ecx + eax]
add ebp, 1
cmp byte [edx + eax], cl
jne case.0x410a67.14
add ebx, 2
jmp 0x40e10c
xor edx, edx
mov dh, byte [ebx + 1]
add ebx, 3
mov dl, byte [ebx - 1]
mov esi, edx
mov eax, esi
jmp 0x40f110
mov dword [esp + 0x1c], 1
xor ecx, ecx
mov ch, byte [ebx + 1]
xor edx, edx
xor eax, eax
cmp byte [ebx], 0x25
sete dl
add ebx, 3
mov cl, byte [ebx - 1]
mov dword [esp + 0x20], edx
mov esi, ecx
jmp 0x40f110
xor eax, eax
mov dword [esp + 0x1c], 1
add ebx, 1
jmp 0x40f10b
mov eax, 1
mov dword [esp + 0x1c], eax
add ebx, eax
jmp 0x40f10b
mov esi, 1
xor eax, eax
mov dword [esp + 0x1c], esi
add ebx, esi
jmp 0x40f110
movzx ecx, byte [ebx]
movsx esi, byte [ecx + 0x4302e2]
sub ecx, 0x1e
mov eax, ecx
and eax, 1
add ebx, 1
test esi, esi
mov dword [esp + 0x20], eax
movsx eax, byte [ecx + 0x4302f8]
jne 0x40f110
mov esi, 0x7fffffff
mov ecx, dword [edi + 0x58]
sub ecx, ebp
cmp eax, ecx
jg case.0x410a67.14
movzx edx, byte [ebx]
add ebx, 1
test byte [esp + 0x110], 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
je 0x40f219
cmp eax, 1
mov ecx, dword [edi + 0x24]
movzx edx, byte [ecx + edx]
mov dword [esp + 0x14], edx
jl 0x40f177
lea ecx, [ecx]
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x24]
movzx ecx, byte [edx + ecx]
add ebp, 1
cmp dword [esp + 0x14], ecx
jne case.0x410a67.14
mov ecx, dword [esp + 0x18]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x18], ecx
jle 0x40f150
cmp eax, esi
je 0x40e10c
cmp dword [esp + 0x20], 0
jne 0x410687
cmp eax, esi
mov dword [esp + 0x20], ebp
jge 0x40f1b2
cmp ebp, dword [edi + 0x58]
jae 0x40f1b2
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x24]
movzx ecx, byte [edx + ecx]
cmp dword [esp + 0x14], ecx
jne 0x40f1b2
add eax, 1
add ebp, 1
cmp eax, esi
jl 0x40f192
cmp dword [esp + 0x1c], 0
jne 0x40e10c
cmp ebp, dword [esp + 0x20]
jb 0x40f20c
mov esi, dword [esp + 0x11c]
add esi, 1
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x108]
push esi
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
sub ebp, 1
test eax, eax
jne 0x410b9a
cmp ebp, dword [esp + 0x20]
jae 0x40f1cd
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
cmp eax, 1
jl 0x40f23e
mov edi, edi
movzx ecx, byte [ebp]
add ebp, 1
cmp edx, ecx
jne case.0x410a67.14
mov ecx, dword [esp + 0x18]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x18], ecx
jle 0x40f220
cmp eax, esi
je 0x40e10c
cmp dword [esp + 0x20], 0
jne 0x410741
cmp eax, esi
mov ecx, ebp
mov dword [esp + 0x20], ecx
jge 0x40f274
cmp ebp, dword [edi + 0x58]
jae 0x40f274
movzx edx, byte [ebp]
cmp dword [esp + 0x14], edx
jne 0x40f274
add eax, 1
add ebp, 1
cmp eax, esi
jl 0x40f25b
cmp dword [esp + 0x1c], 0
jne 0x40e10c
cmp ebp, ecx
jb 0x40f2cc
mov esi, dword [esp + 0x11c]
add esi, 1
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x108]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x110]
push edx
push edi
push eax
push ecx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
sub ebp, 1
test eax, eax
jne 0x410b9a
cmp ebp, dword [esp + 0x20]
jae 0x40f28d
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx esi, byte [ebp]
add ebx, 1
add ebp, 1
test byte [esp + 0x110], 1
je 0x40f318
mov eax, dword [edi + 0x24]
movzx ecx, byte [ebx]
mov dl, byte [eax + esi]
add ebx, 1
cmp byte [ecx + eax], dl
jne 0x40e10c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
movzx eax, byte [ebx]
add ebx, 1
cmp eax, esi
jne 0x40e10c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
xor ecx, ecx
mov ch, byte [ebx + 1]
add ebx, 3
mov cl, byte [ebx - 1]
mov esi, ecx
mov eax, esi
jmp 0x40f3d4
xor edx, edx
mov dh, byte [ebx + 1]
xor ecx, ecx
xor eax, eax
cmp byte [ebx], 0x32
sete cl
add ebx, 3
mov dl, byte [ebx - 1]
mov dword [esp + 0x20], ecx
mov esi, edx
jmp 0x40f3d4
xor eax, eax
mov dword [esp + 0x1c], 1
add ebx, 1
jmp 0x40f3cf
mov eax, 1
mov dword [esp + 0x1c], eax
add ebx, eax
jmp 0x40f3cf
mov esi, 1
xor eax, eax
mov dword [esp + 0x1c], esi
add ebx, esi
jmp 0x40f3d4
xor edx, edx
mov dh, byte [ebx + 1]
xor eax, eax
mov dword [esp + 0x1c], 1
add ebx, 3
mov dl, byte [ebx - 1]
mov esi, edx
jmp 0x40f3d4
movzx ecx, byte [ebx]
movsx esi, byte [ecx + 0x4302d5]
sub ecx, 0x2b
mov eax, ecx
and eax, 1
add ebx, 1
test esi, esi
mov dword [esp + 0x20], eax
movsx eax, byte [ecx + 0x4302f8]
jne 0x40f3d4
mov esi, 0x7fffffff
mov ecx, dword [edi + 0x58]
sub ecx, ebp
cmp eax, ecx
jg case.0x410a67.14
movzx edx, byte [ebx]
add ebx, 1
test byte [esp + 0x110], 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
je 0x40f4da
cmp eax, 1
mov ecx, dword [edi + 0x24]
movzx edx, byte [ecx + edx]
mov dword [esp + 0x14], edx
jl 0x40f438
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x24]
movzx ecx, byte [edx + ecx]
add ebp, 1
cmp dword [esp + 0x14], ecx
je case.0x410a67.14
mov ecx, dword [esp + 0x18]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x18], ecx
jle 0x40f411
cmp eax, esi
je 0x40e10c
cmp dword [esp + 0x20], 0
jne 0x4107fa
cmp eax, esi
mov dword [esp + 0x20], ebp
jge 0x40f473
cmp ebp, dword [edi + 0x58]
jae 0x40f473
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x24]
movzx ecx, byte [edx + ecx]
cmp dword [esp + 0x14], ecx
je 0x40f473
add eax, 1
add ebp, 1
cmp eax, esi
jl 0x40f453
cmp dword [esp + 0x1c], 0
jne 0x40e10c
cmp ebp, dword [esp + 0x20]
jb 0x40f4cd
mov esi, dword [esp + 0x11c]
add esi, 1
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x108]
push esi
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
sub ebp, 1
cmp ebp, dword [esp + 0x20]
jae 0x40f48e
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
cmp eax, 1
jl 0x40f4fe
nop
movzx ecx, byte [ebp]
add ebp, 1
cmp edx, ecx
je case.0x410a67.14
mov ecx, dword [esp + 0x18]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x18], ecx
jle 0x40f4e0
cmp eax, esi
je 0x40e10c
cmp dword [esp + 0x20], 0
jne 0x4108b3
cmp eax, esi
mov ecx, ebp
mov dword [esp + 0x20], ecx
jge 0x40f534
cmp ebp, dword [edi + 0x58]
jae 0x40f534
movzx edx, byte [ebp]
cmp dword [esp + 0x14], edx
je 0x40f534
add eax, 1
add ebp, 1
cmp eax, esi
jl 0x40f51b
cmp dword [esp + 0x1c], 0
jne 0x40e10c
cmp ebp, ecx
jb 0x40f58c
mov esi, dword [esp + 0x11c]
add esi, 1
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x108]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x110]
push edx
push edi
push eax
push ecx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
sub ebp, 1
cmp ebp, dword [esp + 0x20]
jae 0x40f54d
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
xor eax, eax
mov ah, byte [ebx + 1]
mov dword [esp + 0x20], 1
add ebx, 3
mov al, byte [ebx - 1]
mov esi, eax
mov dword [esp + 0x14], esi
jmp 0x40f656
xor ecx, ecx
mov ch, byte [ebx + 1]
xor edx, edx
xor esi, esi
cmp byte [ebx], 0x3f
sete dl
add ebx, 3
mov cl, byte [ebx - 1]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ecx
jmp 0x40f656
xor esi, esi
mov dword [esp + 0x1c], 1
add ebx, 1
jmp 0x40f64e
mov esi, 1
mov dword [esp + 0x1c], esi
add ebx, esi
jmp 0x40f64e
mov eax, 1
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
add ebx, eax
jmp 0x40f656
xor eax, eax
mov ah, byte [ebx + 1]
xor esi, esi
mov dword [esp + 0x1c], 1
add ebx, 3
mov al, byte [ebx - 1]
mov dword [esp + 0x14], eax
jmp 0x40f656
movzx eax, byte [ebx]
movsx esi, byte [eax + 0x4302c0]
sub eax, 0x38
mov ecx, eax
movsx eax, byte [eax + 0x430300]
and ecx, 1
add ebx, 1
test eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
jne 0x40f656
mov dword [esp + 0x14], 0x7fffffff
mov edx, dword [edi + 0x58]
movzx eax, byte [ebx]
mov ecx, edx
sub ecx, ebp
add ebx, 1
cmp esi, ecx
mov dword [esp + 0x24], eax
jg case.0x410a67.14
test esi, esi
jle 0x40f9bc
add eax, 0xfffffffa
cmp eax, 0xe
ja case.0x410a4d.14
jmp dword [eax*4 + 0x410d48]
test byte [esp + 0x110], 4
jne case.0x40f683.13
cmp esi, 1
mov dword [esp + 0x18], 1
jl 0x40f9bc
lea esp, [esp]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x40f6e6
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40f70f
mov edi, dword [esp + 0x10c]
push ecx
add edi, 0x1c
xor edx, edx
mov ecx, ebp
call fcn.00416c20
add esp, 4
test eax, eax
jne case.0x410a67.14
mov edi, dword [esp + 0x10c]
jmp 0x40f70f
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x58]
sub edx, eax
cmp ebp, edx
ja 0x40f70f
mov cl, byte [ebp]
cmp cl, byte [edi + 0x20]
jne 0x40f70f
cmp eax, 1
je case.0x410a67.14
mov dl, byte [ebp + 1]
cmp dl, byte [edi + 0x21]
je case.0x410a67.14
mov eax, dword [esp + 0x18]
add eax, 1
add ebp, 1
cmp eax, esi
mov dword [esp + 0x18], eax
jle 0x40f6b0
jmp 0x40f9bc
add ebp, esi
jmp 0x40f9bc
mov ecx, 1
cmp esi, ecx
jl 0x40f9bc
lea ebx, [ebx]
cmp ebp, edx
jae case.0x410a67.14
movzx eax, byte [ebp]
sub eax, 0xa
add ebp, 1
cmp eax, 0x7b
ja case.0x410a67.14
movzx eax, byte [eax + 0x410d94]
jmp dword [eax*4 + 0x410d84]
cmp ebp, edx
jae case.0x40f762.10
cmp byte [ebp], 0xa
jne case.0x40f762.10
add ebp, 1
jmp case.0x40f762.10
cmp dword [edi + 0x4c], 0
jne case.0x410a67.14
add ecx, 1
cmp ecx, esi
jle 0x40f740
jmp 0x40f9bc
mov ecx, 1
cmp esi, ecx
jl 0x40f9bc
jmp 0x40f7a0
cmp ebp, edx
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 9
je case.0x410a67.14
cmp eax, 0x20
je case.0x410a67.14
cmp eax, 0xa0
je case.0x410a67.14
add ecx, 1
cmp ecx, esi
jle 0x40f7a0
jmp 0x40f9bc
mov ecx, 1
cmp esi, ecx
jl 0x40f9bc
cmp ebp, edx
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 9
je 0x40f809
cmp eax, 0x20
je 0x40f809
cmp eax, 0xa0
jne case.0x410a67.14
add ecx, 1
cmp ecx, esi
jle 0x40f7e5
jmp 0x40f9bc
mov ecx, 1
cmp esi, ecx
jl 0x40f9bc
cmp ebp, edx
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0xa
jl 0x40f84a
cmp eax, 0xd
jle case.0x410a67.14
cmp eax, 0x85
je case.0x410a67.14
add ecx, 1
cmp ecx, esi
jle 0x40f822
jmp 0x40f9bc
mov ecx, 1
cmp esi, ecx
jl 0x40f9bc
cmp ebp, edx
jae case.0x410a67.14
movzx eax, byte [ebp]
add ebp, 1
cmp eax, 0xa
jl case.0x410a67.14
cmp eax, 0xd
jle 0x40f88b
cmp eax, 0x85
jne case.0x410a67.14
add ecx, 1
cmp ecx, esi
jle 0x40f863
jmp 0x40f9bc
mov eax, 1
cmp esi, eax
jl 0x40f9bc
mov ecx, dword [edi + 0x28]
jmp 0x40f8b0
movzx edx, byte [ebp]
mov dl, byte [edx + ecx]
and dl, 4
add ebp, 1
test dl, dl
jne case.0x410a67.14
add eax, 1
cmp eax, esi
jle 0x40f8b0
jmp 0x40f9bc
mov eax, 1
cmp esi, eax
jl 0x40f9bc
mov ecx, dword [edi + 0x28]
movzx edx, byte [ebp]
mov dl, byte [edx + ecx]
and dl, 4
add ebp, 1
test dl, dl
je case.0x410a67.14
add eax, 1
cmp eax, esi
jle 0x40f8e1
jmp 0x40f9bc
mov eax, 1
cmp esi, eax
jl 0x40f9bc
mov ecx, dword [edi + 0x28]
movzx edx, byte [ebp]
mov dl, byte [edx + ecx]
and dl, 1
add ebp, 1
test dl, dl
jne case.0x410a67.14
add eax, 1
cmp eax, esi
jle 0x40f912
jmp 0x40f9bc
mov eax, 1
cmp esi, eax
jl 0x40f9bc
mov ecx, dword [edi + 0x28]
movzx edx, byte [ebp]
mov dl, byte [edx + ecx]
and dl, 1
add ebp, 1
test dl, dl
je case.0x410a67.14
add eax, 1
cmp eax, esi
jle 0x40f943
jmp 0x40f9bc
mov eax, 1
cmp esi, eax
jl 0x40f9bc
mov ecx, dword [edi + 0x28]
lea ecx, [ecx]
movzx edx, byte [ebp]
mov dl, byte [edx + ecx]
and dl, 0x10
add ebp, 1
test dl, dl
jne case.0x410a67.14
add eax, 1
cmp eax, esi
jle 0x40f970
jmp 0x40f9bc
mov eax, 1
cmp esi, eax
jl 0x40f9bc
mov ecx, dword [edi + 0x28]
lea ebx, [ebx]
movzx edx, byte [ebp]
mov dl, byte [edx + ecx]
and dl, 0x10
add ebp, 1
test dl, dl
je case.0x410a67.14
add eax, 1
cmp eax, esi
jle 0x40f9a0
cmp esi, dword [esp + 0x14]
je 0x40e10c
cmp dword [esp + 0x20], 0
jne 0x41097a
mov eax, dword [esp + 0x24]
add eax, 0xfffffffa
cmp eax, 0xe
mov dword [esp + 0x20], ebp
ja case.0x410a4d.14
jmp dword [eax*4 + 0x410e10]
test byte [esp + 0x110], 4
jne case.0x40f9e5.13
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd51
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x40fa3e
mov edi, dword [esp + 0x10c]
push ecx
add edi, 0x1c
xor edx, edx
mov ecx, ebp
call fcn.00416c20
add esp, 4
test eax, eax
jne 0x40fd51
mov edi, dword [esp + 0x10c]
jmp 0x40fa64
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp ebp, eax
ja 0x40fa64
mov al, byte [ebp]
cmp al, byte [edi + 0x20]
jne 0x40fa64
cmp ecx, 1
je 0x40fd51
mov cl, byte [ebp + 1]
cmp cl, byte [edi + 0x21]
je 0x40fd51
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fa04
jmp 0x40fd58
mov eax, dword [esp + 0x14]
sub eax, esi
mov ecx, eax
mov eax, dword [edi + 0x58]
sub eax, ebp
cmp ecx, eax
jbe 0x40fa88
mov ecx, eax
add ebp, ecx
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov ecx, dword [edi + 0x58]
lea esp, [esp]
cmp ebp, ecx
jae 0x40fd58
movzx eax, byte [ebp]
cmp eax, 0xd
jne 0x40fac4
add ebp, 1
cmp ebp, ecx
jae 0x40fd58
cmp byte [ebp], 0xa
jne 0x40faeb
jmp 0x40fae8
cmp eax, 0xa
je 0x40fae8
cmp dword [edi + 0x4c], 0
jne 0x40fd58
cmp eax, 0xb
je 0x40fae8
cmp eax, 0xc
je 0x40fae8
cmp eax, 0x85
jne 0x40fd58
add ebp, 1
add esi, 1
cmp esi, dword [esp + 0x14]
jl 0x40faa0
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov ecx, dword [edi + 0x58]
cmp ebp, ecx
jae 0x40fd58
movzx eax, byte [ebp]
cmp eax, 9
je 0x40fd58
cmp eax, 0x20
je 0x40fd58
cmp eax, 0xa0
je 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fb06
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov ecx, dword [edi + 0x58]
lea ecx, [ecx]
cmp ebp, ecx
jae 0x40fd58
movzx eax, byte [ebp]
cmp eax, 9
je 0x40fb71
cmp eax, 0x20
je 0x40fb71
cmp eax, 0xa0
jne 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fb50
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov ecx, dword [edi + 0x58]
nop
cmp ebp, ecx
jae 0x40fd58
movzx eax, byte [ebp]
cmp eax, 0xa
je 0x40fd58
cmp eax, 0xb
je 0x40fd58
cmp eax, 0xc
je 0x40fd58
cmp eax, 0xd
je 0x40fd58
cmp eax, 0x85
je 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fb90
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov ecx, dword [edi + 0x58]
lea esp, [esp]
cmp ebp, ecx
jae 0x40fd58
movzx eax, byte [ebp]
cmp eax, 0xa
je 0x40fc1b
cmp eax, 0xb
je 0x40fc1b
cmp eax, 0xc
je 0x40fc1b
cmp eax, 0xd
je 0x40fc1b
cmp eax, 0x85
jne 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fbf0
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd58
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x28]
test byte [edx + ecx], 4
jne 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fc39
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd58
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x28]
test byte [edx + ecx], 4
je 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fc70
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd58
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x28]
test byte [edx + ecx], 1
jne 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fca7
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd58
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x28]
test byte [edx + ecx], 1
je 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fcde
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd58
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x28]
test byte [edx + ecx], 0x10
jne 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fd0a
jmp 0x40fd58
cmp esi, dword [esp + 0x14]
jge 0x40fd58
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae 0x40fd58
movzx edx, byte [ebp]
mov ecx, dword [edi + 0x28]
test byte [edx + ecx], 0x10
je 0x40fd58
add esi, 1
add ebp, 1
cmp esi, dword [esp + 0x14]
jl 0x40fd32
jmp 0x40fd58
mov edi, dword [esp + 0x10c]
cmp dword [esp + 0x1c], 0
jne 0x40e10c
cmp ebp, dword [esp + 0x20]
jb 0x40fdb2
mov esi, dword [esp + 0x11c]
add esi, 1
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x108]
push esi
push 0
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
sub ebp, 1
test eax, eax
jne 0x410b9a
cmp ebp, dword [esp + 0x20]
jae 0x40fd73
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
xor edx, edx
mov dh, byte [ebx + 4]
mov dl, byte [ebx + 5]
cmp byte [ebx + edx + 3], 0x53
lea ebx, [ebx + edx + 3]
jne 0x40fde1
xor eax, eax
mov ah, byte [ebx + 1]
mov al, byte [ebx + 2]
add ebx, eax
cmp byte [ebx], 0x53
je 0x40fdd2
mov edx, dword [esp + 0x14]
add ebx, 3
cmp edx, 0x62
jne 0x41003e
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x110]
add edx, 1
push edx
mov edx, dword [esp + 0x10c]
push 2
push eax
push ecx
push edi
push edx
push esi
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
xor eax, eax
mov ah, byte [ebx + 3]
mov al, byte [ebx + 4]
lea esi, [eax + eax]
cmp esi, dword [edi + 0x14]
mov dword [esp + 0x20], eax
jl 0x4101e6
xor eax, eax
cmp dword [esp + 0x14], 0x60
setl al
xor ecx, ecx
mov ch, byte [ebx + 1]
sub eax, 1
and eax, 2
mov cl, byte [ebx + 2]
mov dword [esp + 0x118], eax
cmp byte [ecx + ebx], 0x53
jne 0x40fee8
mov esi, dword [esp + 0x11c]
add esi, 1
jmp 0x40fe80
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x108]
push esi
push eax
mov eax, dword [esp + 0x118]
push edx
mov edx, dword [esp + 0x110]
push eax
movzx eax, byte [ebx]
push edi
push ecx
movzx ecx, byte [eax + 0x42f280]
push edx
add ecx, ebx
push ecx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x40fec8
cmp eax, 0xfffffc1c
jne 0x410b9a
xor edx, edx
mov dh, byte [ebx + 1]
xor eax, eax
mov dl, byte [ebx + 2]
mov ah, byte [ebx + edx + 1]
add ebx, edx
mov al, byte [ebx + 2]
cmp byte [eax + ebx], 0x53
mov eax, dword [esp + 0x118]
je 0x40fe80
test eax, eax
jne 0x4102dc
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x42f280]
add ebx, edx
jmp 0x410049
cmp byte [ebx + 3], 0x18
lea esi, [ebx + 3]
jne 0x40ff23
mov edx, dword [esp + 0x110]
movzx eax, byte [ebx + 4]
and edx, 0xfffffff8
or eax, edx
mov dword [esp + 0x110], eax
jmp 0x40ff2a
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x11c]
add edx, 1
cmp byte [ebx], 0x56
push edx
mov edx, dword [esp + 0x118]
jne 0x40ff6a
push 0
push edx
push eax
mov eax, dword [esp + 0x114]
push edi
push ecx
push eax
push esi
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov ebx, dword [esp + 0x1c]
jmp 0x41003e
push 2
push edx
push eax
mov eax, dword [esp + 0x114]
push edi
push ecx
mov ecx, dword [esp + 0x34]
push eax
push ecx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov ebx, esi
jmp 0x41003e
cmp byte [esi], 0x60
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
cmp byte [ebx], 0x56
mov dword [esp + 0x118], eax
jne 0x40ffff
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x28]
add edx, 1
push edx
mov edx, dword [esp + 0x10c]
push 0
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
add ebx, 3
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov eax, dword [esp + 0x118]
test eax, eax
jne 0x4104f3
mov ebx, esi
jmp 0x410049
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x114]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push esi
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
add ebx, 3
mov dword [esp + 0x118], 0
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jb 0x40e0ca
add dword [edi], 1
mov eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, 0xffffffeb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x114]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x114]
push edx
mov edx, dword [esp + 0x110]
push eax
movzx eax, byte [ebx]
push ecx
movzx ecx, byte [eax + 0x42f280]
push edi
push edx
push esi
add ecx, ebx
push ecx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov eax, 0xfffffc1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
add edx, 1
push edx
mov edx, dword [esp + 0x114]
push eax
mov eax, dword [esp + 0x110]
push ecx
movzx ecx, byte [ebx]
push edx
movzx edx, byte [ecx + 0x42f280]
push edi
push eax
push esi
add edx, ebx
push edx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov eax, 0xfffffc19
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x114]
add eax, 1
push eax
mov eax, dword [esp + 0x114]
push ecx
mov ecx, dword [esp + 0x110]
push edx
movzx edx, byte [ebx]
push eax
movzx eax, byte [edx + 0x42f280]
push edi
push ecx
push esi
add eax, ebx
push eax
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov dword [edi + 0x5c], ebp
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x114]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x114]
push edx
mov edx, dword [esp + 0x110]
push eax
movzx eax, byte [ebx]
push ecx
movzx ecx, byte [eax + 0x42f280]
push edi
push edx
push esi
add ecx, ebx
push ecx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, dword [edi + 0xc]
mov edx, dword [eax + esi*4]
mov ecx, dword [eax + esi*4 + 4]
mov dword [esp + 0x28], edx
mov edx, dword [edi + 0x10]
sub edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [edi + 0x68]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], edx
xor edx, edx
mov ecx, ebp
sub ecx, dword [edi + 0x54]
cmp dword [esp + 0x14], 0x61
mov dword [eax], ecx
mov eax, dword [esp + 0x11c]
setne dl
sub edx, 1
and edx, 2
add eax, 1
mov dword [esp + 0x118], edx
mov dword [esp + 0x1c], eax
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x114]
push ecx
mov ecx, dword [esp + 0x114]
push edx
mov edx, dword [esp + 0x110]
push eax
mov eax, dword [esp + 0x110]
push ecx
movzx ecx, byte [ebx]
push edi
push edx
movzx edx, byte [ecx + 0x42f280]
push eax
add edx, ebx
push edx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x410293
cmp eax, 0xfffffc1c
jne 0x410b9a
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov dword [edi + 0x68], eax
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ebx, ecx
cmp byte [ebx], 0x53
je 0x410240
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0x28]
mov dword [edx + esi*4], eax
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x18]
mov dword [ecx + esi*4 + 4], edx
mov eax, dword [edi + 0x10]
sub eax, dword [esp + 0x20]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x44]
mov dword [ecx + eax*4], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x114]
add ecx, 1
push ecx
mov ecx, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x118]
push edx
mov edx, dword [esp + 0x110]
push eax
movzx eax, byte [ebx]
push edi
push ecx
movzx ecx, byte [eax + 0x42f280]
push edx
add ecx, ebx
push ecx
push ebp
call fcn.0040e0a0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
cmp dword [edi + 0x40], ecx
je 0x410333
cmp ebp, esi
je case.0x410a67.14
mov eax, dword [esp + 0x108]
mov dword [edi + 0x60], ebp
mov dword [edi + 0x64], eax
mov dword [edi + 0x5c], esi
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, dword [edi + 0x50]
xor ecx, ecx
mov ch, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ecx, eax
mov esi, ecx
cmp esi, eax
jne 0x410370
mov dword [esp + 0x30], 0
jmp 0x41037c
xor edx, edx
mov dh, byte [esi + 3]
mov dl, byte [esi + 4]
mov dword [esp + 0x30], edx
mov eax, dword [edi + 0x78]
lea ecx, [esp + 0x2c]
mov dword [edi + 0x78], ecx
mov ecx, dword [edi + 0x10]
add ebx, 3
cmp ecx, 0x1e
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ecx
jg 0x4103aa
lea eax, [esp + 0x80]
mov dword [esp + 0x3c], eax
jmp 0x4103d7
lea edx, [ecx*4]
push edx
call dword [sym.td.exe_pcre_malloc]
add esp, 4
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x4103d3
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x40]
mov edx, dword [edi + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.0041ec90
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x44], eax
mov al, byte [esi]
add esp, 0xc
cmp al, 0x60
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 2
add ecx, 1
mov dword [esp + 0x1c], ecx
mov edi, edi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x114]
push edx
mov edx, dword [esp + 0x114]
push ebx
push ecx
mov ecx, dword [esp + 0x114]
push edx
movzx edx, al
movzx eax, byte [edx + 0x42f280]
push edi
push ecx
push ebp
add eax, esi
push eax
push ebp
call fcn.0040e0a0
add esp, 0x24
cmp eax, 1
je 0x4104c3
test eax, eax
je 0x41045e
cmp eax, 0xfffffc1c
jne 0x410b9a
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x2c]
lea eax, [edx*4]
mov edx, dword [edi + 0xc]
mov dword [edi + 0x78], ecx
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push edx
call fcn.0041ec90
xor eax, eax
mov ah, byte [esi + 1]
add esp, 0xc
mov al, byte [esi + 2]
add esi, eax
mov al, byte [esi]
cmp al, 0x53
je 0x410410
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x78], eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x80]
cmp eax, ecx
je 0x4104b6
push eax
call dword [sym.td.exe_pcre_free]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x80]
cmp eax, edx
mov dword [edi + 0x78], ecx
je 0x4104e3
push eax
call dword [sym.td.exe_pcre_free]
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x28]
add edx, 1
push edx
mov edx, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push esi
push ebp
call fcn.0040e0a0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x108]
mov dword [edi + 0x60], ebp
mov dword [edi + 0x64], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
cmp eax, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], eax
jge 0x410591
mov edx, dword [esp + 0x110]
push edx
mov edx, dword [esp + 0x28]
push ebp
mov ecx, edi
mov eax, esi
call fcn.0040e020
add esp, 8
test eax, eax
je 0x41058b
mov eax, dword [esp + 0x18]
add eax, 1
add ebp, esi
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jl 0x41055b
cmp ebp, dword [esp + 0x20]
jb 0x4105e1
mov eax, dword [esp + 0x11c]
add eax, 1
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
push ecx
mov ecx, dword [esp + 0x10c]
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
sub ebp, esi
cmp ebp, dword [esp + 0x20]
jae 0x41059f
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
cmp edx, esi
mov dword [esp + 0x20], ebp
jge 0x410631
cmp ebp, dword [edi + 0x58]
jae 0x41062b
movzx eax, byte [ebp]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x24]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je 0x41062b
mov eax, dword [esp + 0x18]
add eax, 1
add ebp, 1
cmp eax, esi
mov dword [esp + 0x18], eax
jl 0x4105f6
cmp ebp, dword [esp + 0x20]
jb 0x41067a
mov esi, dword [esp + 0x11c]
add esi, 1
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x108]
push esi
push 0
push ecx
mov ecx, dword [esp + 0x110]
push edx
push edi
push eax
push ecx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
sub ebp, 1
cmp ebp, dword [esp + 0x20]
jae 0x41063b
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x11c]
add eax, 1
push eax
push 0
push edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x11c]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
nop
cmp dword [esp + 0x18], esi
jge case.0x410a67.14
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov ecx, dword [edi + 0x24]
movzx edx, byte [eax + ecx]
add ebp, 1
cmp dword [esp + 0x14], edx
jne case.0x410a67.14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
add dword [esp + 0x18], 1
push eax
mov eax, dword [esp + 0x10c]
push 0
push ecx
mov ecx, dword [esp + 0x110]
push edx
push edi
push eax
push ecx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x4106d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x108]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x11c]
add eax, 1
push eax
push 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
lea esp, [esp]
cmp dword [esp + 0x18], esi
jge case.0x410a67.14
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx ecx, byte [ebp]
add ebp, 1
cmp dword [esp + 0x14], ecx
jne case.0x410a67.14
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x110]
add dword [esp + 0x18], 1
push edx
mov edx, dword [esp + 0x10c]
push 0
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x410790
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x11c]
add eax, 1
push eax
push 0
push edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x11c]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
cmp dword [esp + 0x18], esi
jge case.0x410a67.14
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx eax, byte [ebp]
mov ecx, dword [edi + 0x24]
movzx edx, byte [eax + ecx]
add ebp, 1
cmp dword [esp + 0x14], edx
je case.0x410a67.14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
add dword [esp + 0x18], 1
push eax
mov eax, dword [esp + 0x10c]
push 0
push ecx
mov ecx, dword [esp + 0x110]
push edx
push edi
push eax
push ecx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x410842
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x108]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x11c]
add eax, 1
push eax
push 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x11c]
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
jmp 0x410900
cmp dword [esp + 0x18], esi
jge case.0x410a67.14
cmp ebp, dword [edi + 0x58]
jae case.0x410a67.14
movzx ecx, byte [ebp]
add ebp, 1
cmp dword [esp + 0x14], ecx
je case.0x410a67.14
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x110]
add dword [esp + 0x18], 1
push edx
mov edx, dword [esp + 0x10c]
push 0
push eax
mov eax, dword [esp + 0x110]
push ecx
push edi
push edx
push eax
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x410900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, 0xfffffff2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x11c]
add esi, 1
push esi
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
jne 0x410b9a
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x14]
jge case.0x410a67.14
mov eax, dword [edi + 0x58]
cmp ebp, eax
jae case.0x410a67.14
test byte [esp + 0x110], 4
jne 0x410a36
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x410a10
mov edi, dword [esp + 0x10c]
push ecx
add edi, 0x1c
xor edx, edx
mov ecx, ebp
call fcn.00416c20
add esp, 4
test eax, eax
jne case.0x410a67.14
mov edi, dword [esp + 0x10c]
jmp 0x410a36
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp ebp, eax
ja 0x410a36
mov dl, byte [ebp]
cmp dl, byte [edi + 0x20]
jne 0x410a36
cmp ecx, 1
je case.0x410a67.14
mov al, byte [ebp + 1]
cmp al, byte [edi + 0x21]
je case.0x410a67.14
mov ecx, dword [esp + 0x24]
movzx eax, byte [ebp]
add ecx, 0xfffffffa
add ebp, 1
cmp ecx, 0xe
ja case.0x410a4d.14
jmp dword [ecx*4 + 0x410e4c]
add eax, 0xfffffff6
cmp eax, 0x7b
ja case.0x410a67.14
movzx ecx, byte [eax + 0x410e98]
jmp dword [ecx*4 + 0x410e88]
cmp ebp, dword [edi + 0x58]
jae case.0x410a4d.12
cmp byte [ebp], 0xa
jne case.0x410a4d.12
add ebp, 1
jmp case.0x410a4d.12
cmp dword [edi + 0x4c], 0
jne case.0x410a67.14
jmp case.0x410a4d.12
cmp eax, 9
je case.0x410a67.14
cmp eax, 0x20
je case.0x410a67.14
cmp eax, 0xa0
jmp 0x410b49
cmp eax, 9
je case.0x410a4d.12
cmp eax, 0x20
je case.0x410a4d.12
cmp eax, 0xa0
jne case.0x410a67.14
jmp case.0x410a4d.12
cmp eax, 0xa
jb case.0x410a4d.12
cmp eax, 0xd
jbe case.0x410a67.14
cmp eax, 0x85
jmp 0x410b49
cmp eax, 0xa
jb case.0x410a67.14
cmp eax, 0xd
jbe case.0x410a4d.12
cmp eax, 0x85
jne case.0x410a67.14
jmp case.0x410a4d.12
mov edx, dword [edi + 0x28]
test byte [eax + edx], 4
jne case.0x410a67.14
jmp case.0x410a4d.12
mov ecx, dword [edi + 0x28]
test byte [eax + ecx], 4
jmp 0x410b49
mov edx, dword [edi + 0x28]
test byte [eax + edx], 1
jne case.0x410a67.14
jmp case.0x410a4d.12
mov ecx, dword [edi + 0x28]
test byte [eax + ecx], 1
jmp 0x410b49
mov edx, dword [edi + 0x28]
test byte [eax + edx], 0x10
jne case.0x410a67.14
jmp case.0x410a4d.12
mov ecx, dword [edi + 0x28]
test byte [eax + ecx], 0x10
je case.0x410a67.14
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x108]
add dword [esp + 0x18], 1
push esi
push 0
push edx
mov edx, dword [esp + 0x110]
push eax
push edi
push ecx
push edx
push ebx
push ebp
call fcn.0040e0a0
add esp, 0x24
test eax, eax
je 0x4109be
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret