Function at 0x4a6a0c
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff30
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 4], eax
test byte [ebp + 0x20], 2
je 0x4a6a3c
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edi
mov dword [ebp + 0x1c], ecx
xor eax, eax
xor edx, edx
mov al, byte [esi]
mov dword [ebp - 0x24], edx
cmp eax, 0x46
jle 0x4a6b0b
add eax, 0xffffffba
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
add edx, edx
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebx + 0xc]
jge 0x4a6b06
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [eax + edx*4 + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebx + 8]
sub eax, dword [ebp - 0x28]
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebx + 4]
mov ecx, edi
sub ecx, dword [ebx + 0x34]
mov dword [edx + eax*4], ecx
push 2
lea ecx, [esi + 3]
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push ecx
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a6ac5
mov eax, 1
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x4a6a9b
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov dword [eax + edx*4], ecx
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
mov dword [eax + edx*4 + 4], ecx
mov edx, dword [ebx + 8]
sub edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
mov dword [eax + edx*4], ecx
xor eax, eax
jmp 0x4a85e5
mov eax, 0x46
cmp eax, 0x46
ja case.0x4a6b14.45
jmp dword [eax*4 + 0x4a6b1b]
push 2
mov edx, dword [ebp + 0x1c]
push edx
lea edx, [esi + 3]
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edx
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a6c61
mov eax, 1
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je case.0x4a6b14.70
xor eax, eax
jmp 0x4a85e5
cmp byte [esi + 3], 0x43
jne 0x4a6cdd
xor edx, edx
mov dl, byte [esi + 4]
add edx, edx
mov dword [ebp - 0x3c], edx
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp + 0x10]
jge 0x4a6cb8
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x3c]
cmp dword [eax + edx*4], 0
jl 0x4a6cb8
mov ecx, 5
jmp 0x4a6cca
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + 1]
mov al, byte [esi + 2]
shl ecx, 8
add ecx, eax
add ecx, 3
add esi, ecx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
jmp 0x4a85e5
push 3
push 0
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov eax, dword [ebp + 0x10]
lea edx, [esi + 3]
push eax
push edx
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a6d29
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + 4]
mov al, byte [esi + 5]
shl ecx, 8
add ecx, eax
add ecx, 3
add esi, ecx
jmp 0x4a6d22
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x4a6d11
jmp 0x4a6d3a
xor eax, eax
xor edx, edx
mov al, byte [esi + 1]
mov dl, byte [esi + 2]
shl eax, 8
add eax, edx
add esi, eax
push 2
add esi, 3
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
jmp 0x4a85e5
add esi, 2
jmp 0x4a6a3c
cmp dword [ebx + 0x2c], 0
je 0x4a6d75
cmp edi, dword [ebx + 0x3c]
jne 0x4a6d75
xor eax, eax
jmp 0x4a85e5
mov dword [ebx + 0x40], edi
mov eax, 1
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
jmp 0x4a85e5
xor edx, edx
mov dl, byte [esi + 1]
add esi, 2
mov dword [ebp + 0x18], edx
jmp 0x4a6a3c
push 2
push 0
mov ecx, dword [ebp + 0x18]
lea edx, [esi + 3]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edx
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
jne 0x4a6dcc
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + 1]
mov al, byte [esi + 2]
shl ecx, 8
add ecx, eax
add esi, ecx
cmp byte [esi], 0x38
je case.0x4a6b14.60
cmp byte [esi], 0x39
jne 0x4a6dd8
xor eax, eax
jmp 0x4a85e5
test byte [ebp + 0x20], 1
je 0x4a6de8
mov eax, 1
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x4a6de8
add esi, 3
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
jmp 0x4a6a3c
push 2
push 0
mov edx, dword [ebp + 0x18]
lea eax, [esi + 3]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a6e31
xor eax, eax
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je case.0x4a6b14.61
test byte [ebp + 0x20], 1
je 0x4a6e57
mov eax, 1
jmp 0x4a85e5
add esi, 3
jmp 0x4a6a3c
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
sub edi, edx
cmp edi, dword [ebx + 0x34]
jae 0x4a6e7c
xor eax, eax
jmp 0x4a85e5
add esi, 3
jmp 0x4a6a3c
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x10
jge 0x4a6e9b
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x44], ecx
jmp 0x4a6ec2
mov eax, dword [ebp - 0x20]
inc eax
shl eax, 2
push eax
call fcn.004a33a0
pop ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x4a6ec2
lea edx, [ebp - 0xd0]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x20], 0xf
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x44]
lea eax, [ecx + 4]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x20]
jg 0x4a6ef3
mov ecx, dword [ebx + 8]
sub ecx, dword [ebp - 0x1c]
mov edx, dword [ebx + 4]
mov ecx, dword [edx + ecx*4]
mov dword [eax], ecx
inc dword [ebp - 0x1c]
add eax, 4
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x20]
jle 0x4a6ed7
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
mov edx, dword [ebx + 0x30]
push edx
push edi
call fcn.004a6a0c
add esp, 0x1c
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x44]
lea eax, [ecx + 4]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x20]
jg 0x4a6f43
mov ecx, dword [ebx + 8]
sub ecx, dword [ebp - 0x1c]
mov edx, dword [ebx + 4]
mov edi, dword [eax]
mov dword [edx + ecx*4], edi
inc dword [ebp - 0x1c]
add eax, 4
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x20]
jle 0x4a6f27
lea eax, [ebp - 0xd0]
cmp eax, dword [ebp - 0x44]
je 0x4a6f58
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.004a33b0
pop ecx
cmp dword [ebp - 0x40], 0
jne 0x4a6f65
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x44]
inc esi
mov dword [ebp + 0x10], edx
mov edi, dword [ebx + 0x40]
jmp 0x4a6a3c
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], edi
push 2
mov eax, dword [ebp + 0x1c]
push eax
lea eax, [esi + 3]
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
jne 0x4a6fb0
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x4a6f7a
cmp byte [esi], 0x41
je 0x4a6fc1
cmp byte [esi], 0x38
je 0x4a6fc1
xor eax, eax
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x4a6fc1
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
mov edi, dword [ebx + 0x40]
cmp byte [esi], 0x39
je 0x4a6fea
cmp edi, dword [ebp - 0x4c]
jne 0x4a6ff2
add esi, 3
jmp 0x4a6a3c
cmp byte [esi + 3], 0xc
jne 0x4a7008
mov eax, dword [ebp + 0x18]
xor edx, edx
mov dl, byte [esi + 4]
and eax, 0xfffffff8
or eax, edx
mov dword [ebp + 0x18], eax
cmp byte [esi], 0x3b
jne 0x4a7057
push 0
add esi, 3
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
jne 0x4a704d
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ebp - 0x48]
push eax
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a70a1
mov eax, 1
jmp 0x4a85e5
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
mov edx, dword [ebp - 0x48]
push edx
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
jne 0x4a7097
push 0
add esi, 3
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a70a1
mov eax, 1
jmp 0x4a85e5
xor eax, eax
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je case.0x4a6b14.56
jmp 0x4a6a3c
inc esi
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a70eb
mov eax, 1
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x4a70eb
add esi, 3
jmp 0x4a6a3c
lea eax, [esi + 1]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 1]
mov cl, byte [eax + 2]
shl edx, 8
add edx, ecx
add eax, edx
cmp byte [eax], 0x38
je 0x4a710c
push 2
add eax, 3
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov edx, dword [ebp + 0x10]
push edx
push eax
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a714c
mov eax, 1
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
xor edx, edx
mov ecx, esi
mov dl, byte [esi + 1]
xor eax, eax
shl edx, 8
mov al, byte [esi + 2]
sub ecx, edx
sub ecx, eax
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp + 0x1c]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
mov dword [ebp + 0x1c], edx
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x3c
je 0x4a71a1
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x3d
je 0x4a71a1
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x3e
je 0x4a71a1
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x3f
je 0x4a71a1
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x41
jne 0x4a71b4
mov dword [ebx + 0x40], edi
mov eax, 1
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
jmp 0x4a85e5
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x42
je 0x4a721d
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
add eax, 0xffffffba
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
add edx, edx
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x58], 0
jle 0x4a721d
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [ebx + 0xc]
jl 0x4a71e8
mov dword [ebx + 0x18], 1
jmp 0x4a721d
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 4]
sub eax, dword [ebp - 0x58]
mov ecx, dword [edx + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x5c]
mov dword [eax + edx*4], ecx
mov edx, edi
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebx + 4]
sub edx, dword [ebx + 0x34]
mov dword [ecx + eax*4 + 4], edx
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp - 0x5c]
jg 0x4a721d
mov eax, dword [ebp - 0x5c]
add eax, 2
mov dword [ebp + 0x10], eax
mov edx, dword [ebp - 4]
mov dword [ebp + 0x18], edx
cmp byte [esi], 0x39
je 0x4a722d
cmp edi, dword [ebp - 0x54]
jne 0x4a7235
add esi, 3
jmp 0x4a6a3c
cmp byte [esi], 0x3b
jne 0x4a7284
push 0
add esi, 3
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
jne 0x4a727a
push 2
mov eax, dword [ebp + 0x1c]
push eax
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ebp - 0x50]
push eax
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a72ce
mov eax, 1
jmp 0x4a85e5
push 2
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
mov edx, dword [ebp - 0x50]
push edx
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
jne 0x4a72c4
push 0
add esi, 3
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a72ce
mov eax, 1
jmp 0x4a85e5
xor eax, eax
jmp 0x4a85e5
cmp dword [ebx + 0x1c], 0
je 0x4a72e7
cmp edi, dword [ebx + 0x34]
jne 0x4a72e7
xor eax, eax
jmp 0x4a85e5
test byte [ebp + 0x18], 2
je case.0x4a6b14.1
cmp edi, dword [ebx + 0x34]
je 0x4a7305
cmp byte [edi - 1], 0xa
je 0x4a7305
cmp byte [edi - 1], 0xd
je 0x4a7305
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x34]
je 0x4a7317
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
test byte [ebp + 0x18], 2
je 0x4a734c
cmp edi, dword [ebx + 0x38]
jae 0x4a7339
cmp byte [edi], 0xd
je 0x4a7346
cmp byte [edi], 0xa
je 0x4a7346
xor eax, eax
jmp 0x4a85e5
cmp dword [ebx + 0x20], 0
je 0x4a7346
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp dword [ebx + 0x20], 0
je 0x4a7359
xor eax, eax
jmp 0x4a85e5
cmp dword [ebx + 0x28], 0
jne case.0x4a6b14.11
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x4a7379
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x4a7380
cmp byte [edi], 0xd
je 0x4a7380
cmp byte [edi], 0xa
je 0x4a7380
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a7392
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x4a73b2
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x4a73b9
cmp byte [edi], 0xd
je 0x4a73b9
cmp byte [edi], 0xa
je 0x4a73b9
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x34]
je 0x4a73d2
xor edx, edx
mov dl, byte [edi - 1]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x4a73d6
xor eax, eax
jmp 0x4a73db
mov eax, 1
mov dword [ebp - 0x60], eax
cmp edi, dword [ebx + 0x38]
jae 0x4a73f0
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x4a73f4
xor eax, eax
jmp 0x4a73f9
mov eax, 1
mov dword [ebp - 0x64], eax
mov dl, byte [esi]
inc esi
cmp dl, 3
jne 0x4a7412
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x60]
sete al
and eax, 1
jmp 0x4a741e
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x60]
setne al
and eax, 1
test eax, eax
je 0x4a6a3c
xor eax, eax
jmp 0x4a85e5
test byte [ebp + 0x18], 4
jne 0x4a744e
cmp edi, dword [ebx + 0x38]
jae 0x4a744e
cmp byte [edi], 0xa
je 0x4a7447
cmp byte [edi], 0xd
jne 0x4a744e
xor eax, eax
jmp 0x4a85e5
mov edx, edi
inc edi
cmp edx, dword [ebx + 0x38]
jb 0x4a745d
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a7478
mov dl, byte [edi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc edi
test byte [eax + ecx], 4
je 0x4a747f
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a749a
mov dl, byte [edi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc edi
test byte [eax + ecx], 4
jne 0x4a74a1
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a74bc
mov dl, byte [edi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc edi
test byte [eax + ecx], 1
je 0x4a74c3
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a74de
mov dl, byte [edi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc edi
test byte [eax + ecx], 1
jne 0x4a74e5
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a7500
mov dl, byte [edi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc edi
test byte [eax + ecx], 0x10
je 0x4a7507
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
cmp edi, dword [ebx + 0x38]
jae 0x4a7522
mov dl, byte [edi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc edi
test byte [eax + ecx], 0x10
jne 0x4a7529
xor eax, eax
jmp 0x4a85e5
inc esi
jmp 0x4a6a3c
xor edx, edx
mov dl, byte [esi + 1]
add edx, edx
mov dword [ebp - 0x6c], edx
add esi, 2
mov ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp + 0x10]
jge 0x4a7550
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x6c]
cmp dword [eax + edx*4], 0
jge 0x4a7558
mov ecx, dword [ebx + 0x38]
sub ecx, edi
inc ecx
jmp 0x4a756b
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [eax + edx*4 + 4]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x6c]
sub ecx, dword [eax + edx*4]
mov dword [ebp - 0x68], ecx
mov cl, byte [esi]
add cl, 0xd3
sub cl, 6
jb 0x4a7582
sub cl, 2
jb 0x4a75c3
jmp 0x4a7605
xor eax, eax
mov al, byte [esi]
add eax, 0xffffffd3
mov dword [ebp - 0x20], eax
inc esi
test byte [ebp - 0x20], 1
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [ecx + 0x4ccea0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
movsx ecx, byte [edx + 0x4ccea6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x4a762e
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x4a762e
cmp byte [esi], 0x34
sete al
and eax, 1
xor edx, edx
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
xor eax, eax
add edx, ecx
mov dword [ebp - 0x10], edx
xor edx, edx
mov al, byte [esi + 3]
mov dl, byte [esi + 4]
shl eax, 8
add eax, edx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4a7600
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x4a762e
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp - 0x68]
push eax
push edi
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004a6988
add esp, 0x14
test eax, eax
jne 0x4a7626
xor eax, eax
jmp 0x4a85e5
add edi, dword [ebp - 0x68]
jmp 0x4a6a3c
cmp dword [ebp - 0x68], 0
je 0x4a6a3c
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x4a7676
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp - 0x68]
push eax
push edi
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004a6988
add esp, 0x14
test eax, eax
jne 0x4a7668
xor eax, eax
jmp 0x4a85e5
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a7647
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a76e6
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a76b5
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a76d7
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp - 0x68]
push eax
push edi
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004a6988
add esp, 0x14
test eax, eax
jne 0x4a76de
xor eax, eax
jmp 0x4a85e5
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
jmp 0x4a768e
mov dword [ebp - 0x70], edi
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x4a771f
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp - 0x68]
push edx
push edi
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004a6988
add esp, 0x14
test eax, eax
je 0x4a771f
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x4a76f7
cmp edi, dword [ebp - 0x70]
jb 0x4a7753
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a774b
mov eax, 1
jmp 0x4a85e5
sub edi, dword [ebp - 0x68]
cmp edi, dword [ebp - 0x70]
jae 0x4a7724
xor eax, eax
jmp 0x4a85e5
lea edx, [esi + 1]
add esi, 0x21
mov dword [ebp - 0x74], edx
mov cl, byte [esi]
add cl, 0xd3
sub cl, 6
jb 0x4a7777
sub cl, 2
jb 0x4a77b8
jmp 0x4a77fa
xor eax, eax
mov al, byte [esi]
add eax, 0xffffffd3
mov dword [ebp - 0x20], eax
inc esi
test byte [ebp - 0x20], 1
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [ecx + 0x4ccea0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
movsx ecx, byte [edx + 0x4ccea6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x4a7805
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x4a7805
cmp byte [esi], 0x34
sete al
and eax, 1
xor edx, edx
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
xor eax, eax
add edx, ecx
mov dword [ebp - 0x10], edx
xor edx, edx
mov al, byte [esi + 3]
mov dl, byte [esi + 4]
shl eax, 8
add eax, edx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4a77f5
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x4a7805
mov ecx, 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x10]
jg 0x4a785f
cmp edi, dword [ebx + 0x38]
jb 0x4a7820
xor eax, eax
jmp 0x4a85e5
xor edx, edx
mov eax, 1
mov dl, byte [edi]
inc edi
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
and ecx, 7
shl eax, cl
test edx, edx
jns 0x4a783f
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x4a7854
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jle 0x4a7814
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a78eb
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a789e
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a78ab
cmp edi, dword [ebx + 0x38]
jb 0x4a78b2
xor eax, eax
jmp 0x4a85e5
xor edx, edx
mov eax, 1
mov dl, byte [edi]
inc edi
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
and ecx, 7
shl eax, cl
test edx, edx
jns 0x4a78d1
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x4a78e6
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
jmp 0x4a7877
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge 0x4a7942
cmp edi, dword [ebx + 0x38]
jae 0x4a7942
xor edx, edx
mov eax, 1
mov dl, byte [edi]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
and ecx, 7
shl eax, cl
test edx, edx
jns 0x4a7926
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x4a7942
add edi, dword [ebp - 0x7c]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x4a7903
cmp edi, dword [ebp - 0x78]
jb 0x4a7978
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov ecx, edi
mov eax, dword [ebp + 0x18]
add edi, 0xffffffff
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push ecx
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7973
mov eax, 1
jmp 0x4a85e5
cmp edi, dword [ebp - 0x78]
jae 0x4a7947
xor eax, eax
jmp 0x4a85e5
xor edx, edx
mov dl, byte [esi + 1]
mov dword [ebp - 0x80], edx
add esi, 2
mov ecx, dword [ebx + 0x38]
sub ecx, edi
cmp ecx, dword [ebp - 0x80]
jge 0x4a799b
xor eax, eax
jmp 0x4a85e5
test byte [ebp + 0x18], 1
je 0x4a79e7
jmp 0x4a79c6
mov dl, byte [esi]
inc esi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x10]
mov dl, byte [eax + ecx]
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
mov ecx, dword [ebx + 0x10]
cmp dl, byte [ecx + eax]
je 0x4a79c6
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x4a79a3
jmp 0x4a6a3c
mov cl, byte [esi]
inc esi
mov al, byte [edi]
inc edi
cmp cl, al
je 0x4a79e7
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x4a79d6
jmp 0x4a6a3c
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + 1]
mov al, byte [esi + 2]
shl ecx, 8
add ecx, eax
add esi, 3
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
jmp 0x4a7a78
xor edx, edx
xor eax, eax
mov dword [ebp - 0x10], edx
xor edx, edx
mov al, byte [esi + 1]
mov dl, byte [esi + 2]
shl eax, 8
add eax, edx
mov dword [ebp - 0x14], eax
cmp byte [esi], 0x19
sete cl
and ecx, 1
add esi, 3
mov dword [ebp - 0x24], ecx
jmp 0x4a7a78
xor eax, eax
mov al, byte [esi]
add eax, 0xffffffee
mov dword [ebp - 0x20], eax
inc esi
test byte [ebp - 0x20], 1
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x20]
movsx eax, byte [ecx + 0x4ccea0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
movsx ecx, byte [edx + 0x4ccea6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x4a7a78
mov dword [ebp - 0x14], 0x7fffffff
mov eax, dword [ebx + 0x38]
sub eax, edi
cmp eax, dword [ebp - 0x10]
jge 0x4a7a89
xor eax, eax
jmp 0x4a85e5
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x4a7bc8
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg 0x4a7ade
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x10]
xor eax, eax
inc edi
mov al, byte [ecx + edx]
cmp eax, dword [ebp - 0x20]
je 0x4a7ad3
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a7ab8
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a7b4a
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7b1d
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a7b3e
cmp edi, dword [ebx + 0x38]
jae 0x4a7b3e
mov cl, byte [edi]
xor eax, eax
mov al, cl
mov edx, dword [ebx + 0x10]
xor ecx, ecx
inc edi
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x20]
je 0x4a7b45
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
jmp 0x4a7af6
mov dword [ebp - 0x84], edi
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x4a7b80
cmp edi, dword [ebx + 0x38]
jae 0x4a7b80
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x20]
jne 0x4a7b80
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x4a7b5e
cmp edi, dword [ebp - 0x84]
jb 0x4a7bbc
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov edx, edi
mov ecx, dword [ebp + 0x18]
add edi, 0xffffffff
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edx
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7bb4
mov eax, 1
jmp 0x4a85e5
cmp edi, dword [ebp - 0x84]
jae 0x4a7b88
xor eax, eax
jmp 0x4a85e5
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x4a7bf5
mov cl, byte [edi]
xor eax, eax
mov al, cl
inc edi
cmp eax, dword [ebp - 0x20]
je 0x4a7bea
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a7bd7
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a7c59
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7c34
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a7c4d
cmp edi, dword [ebx + 0x38]
jae 0x4a7c4d
mov cl, byte [edi]
xor eax, eax
mov al, cl
inc edi
cmp eax, dword [ebp - 0x20]
je 0x4a7c54
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
jmp 0x4a7c0d
mov dword [ebp - 0x88], edi
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x4a7c87
cmp edi, dword [ebx + 0x38]
jae 0x4a7c87
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
jne 0x4a7c87
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x4a7c6d
cmp edi, dword [ebp - 0x88]
jb 0x4a7cc3
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov ecx, edi
mov eax, dword [ebp + 0x18]
add edi, 0xffffffff
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push ecx
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7cbb
mov eax, 1
jmp 0x4a85e5
cmp edi, dword [ebp - 0x88]
jae 0x4a7c8f
xor eax, eax
jmp 0x4a85e5
cmp edi, dword [ebx + 0x38]
jb 0x4a7cd6
xor eax, eax
jmp 0x4a85e5
inc esi
test byte [ebp + 0x18], 1
je 0x4a7d04
mov dl, byte [esi]
inc esi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x10]
mov dl, byte [eax + ecx]
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
mov ecx, dword [ebx + 0x10]
cmp dl, byte [ecx + eax]
jne 0x4a6a3c
xor eax, eax
jmp 0x4a85e5
mov dl, byte [esi]
inc esi
mov cl, byte [edi]
inc edi
cmp dl, cl
jne 0x4a6a3c
xor eax, eax
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, 3
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edx
jmp 0x4a7d9a
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x10], eax
xor eax, eax
mov cl, byte [esi + 1]
mov al, byte [esi + 2]
shl ecx, 8
add ecx, eax
mov dword [ebp - 0x14], ecx
cmp byte [esi], 0x22
sete dl
and edx, 1
add esi, 3
mov dword [ebp - 0x24], edx
jmp 0x4a7d9a
xor ecx, ecx
mov cl, byte [esi]
add ecx, 0xffffffe5
mov dword [ebp - 0x20], ecx
inc esi
test byte [ebp - 0x20], 1
setne al
and eax, 1
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x20]
movsx ecx, byte [edx + 0x4ccea0]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
movsx edx, byte [eax + 0x4ccea6]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x4a7d9a
mov dword [ebp - 0x14], 0x7fffffff
mov ecx, dword [ebx + 0x38]
sub ecx, edi
cmp ecx, dword [ebp - 0x10]
jge 0x4a7dab
xor eax, eax
jmp 0x4a85e5
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x4a7eea
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg 0x4a7e00
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x10]
xor eax, eax
inc edi
mov al, byte [ecx + edx]
cmp eax, dword [ebp - 0x20]
jne 0x4a7df5
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a7dda
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a7e6c
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7e3f
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a7e60
cmp edi, dword [ebx + 0x38]
jae 0x4a7e60
mov cl, byte [edi]
xor eax, eax
mov al, cl
mov edx, dword [ebx + 0x10]
xor ecx, ecx
inc edi
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x20]
jne 0x4a7e67
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
jmp 0x4a7e18
mov dword [ebp - 0x8c], edi
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x4a7ea2
cmp edi, dword [ebx + 0x38]
jae 0x4a7ea2
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x20]
je 0x4a7ea2
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x4a7e80
cmp edi, dword [ebp - 0x8c]
jb 0x4a7ede
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov edx, edi
mov ecx, dword [ebp + 0x18]
add edi, 0xffffffff
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edx
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7ed6
mov eax, 1
jmp 0x4a85e5
cmp edi, dword [ebp - 0x8c]
jae 0x4a7eaa
xor eax, eax
jmp 0x4a85e5
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x4a7f17
mov cl, byte [edi]
xor eax, eax
mov al, cl
inc edi
cmp eax, dword [ebp - 0x20]
jne 0x4a7f0c
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a7ef9
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a7f7b
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7f56
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a7f6f
cmp edi, dword [ebx + 0x38]
jae 0x4a7f6f
mov cl, byte [edi]
xor eax, eax
mov al, cl
inc edi
cmp eax, dword [ebp - 0x20]
jne 0x4a7f76
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
jmp 0x4a7f2f
mov dword [ebp - 0x90], edi
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x4a7fa9
cmp edi, dword [ebx + 0x38]
jae 0x4a7fa9
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
je 0x4a7fa9
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x4a7f8f
cmp edi, dword [ebp - 0x90]
jb 0x4a7fe5
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov ecx, edi
mov eax, dword [ebp + 0x18]
add edi, 0xffffffff
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push ecx
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a7fdd
mov eax, 1
jmp 0x4a85e5
cmp edi, dword [ebp - 0x90]
jae 0x4a7fb1
xor eax, eax
jmp 0x4a85e5
xor edx, edx
xor ecx, ecx
mov dl, byte [esi + 1]
mov cl, byte [esi + 2]
shl edx, 8
add edx, ecx
add esi, 3
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x24], 1
jmp 0x4a8074
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x10], eax
xor eax, eax
mov cl, byte [esi + 1]
mov al, byte [esi + 2]
shl ecx, 8
add ecx, eax
mov dword [ebp - 0x14], ecx
cmp byte [esi], 0x2b
sete dl
and edx, 1
add esi, 3
mov dword [ebp - 0x24], edx
jmp 0x4a8074
xor ecx, ecx
mov cl, byte [esi]
add ecx, 0xffffffdc
mov dword [ebp - 0x20], ecx
inc esi
test byte [ebp - 0x20], 1
setne al
and eax, 1
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x20]
movsx ecx, byte [edx + 0x4ccea0]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
movsx edx, byte [eax + 0x4ccea6]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x4a8074
mov dword [ebp - 0x14], 0x7fffffff
xor ecx, ecx
mov cl, byte [esi]
mov dword [ebp - 0x18], ecx
inc esi
mov eax, dword [ebx + 0x38]
sub eax, edi
cmp eax, dword [ebp - 0x10]
jge 0x4a808d
xor eax, eax
jmp 0x4a85e5
cmp dword [ebp - 0x10], 0
jle case.0x4a80a6.10
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x4a80a6.10
jmp dword [edx*4 + 0x4a80ad]
test byte [ebp + 0x18], 4
jne 0x4a811a
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
inc edi
cmp al, 0xa
je 0x4a8103
cmp byte [edi - 1], 0xd
jne 0x4a810a
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a80f6
jmp case.0x4a80a6.10
add edi, dword [ebp - 0x10]
jmp case.0x4a80a6.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc edi
test byte [ecx + edx], 4
je 0x4a814c
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a8135
jmp case.0x4a80a6.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc edi
test byte [ecx + edx], 4
jne 0x4a8186
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a816f
jmp case.0x4a80a6.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc edi
test byte [ecx + edx], 1
je 0x4a81c0
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a81a9
jmp case.0x4a80a6.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc edi
test byte [ecx + edx], 1
jne 0x4a81fa
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a81e3
jmp case.0x4a80a6.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc edi
test byte [ecx + edx], 0x10
je 0x4a822d
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a8216
jmp case.0x4a80a6.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x4a80a6.10
mov al, byte [edi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc edi
test byte [ecx + edx], 0x10
jne 0x4a8260
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x4a8249
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x4a6a3c
cmp dword [ebp - 0x24], 0
je 0x4a83a7
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
mov edx, dword [ebp + 0x1c]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a82ae
mov eax, 1
jmp 0x4a85e5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x4a82bb
cmp edi, dword [ebx + 0x38]
jb 0x4a82c2
xor eax, eax
jmp 0x4a85e5
xor edx, edx
mov dl, byte [edi]
mov dword [ebp - 0x20], edx
inc edi
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffffc
cmp ecx, 0xb
ja case.0x4a82d9.10
jmp dword [ecx*4 + 0x4a82e0]
test byte [ebp + 0x18], 4
jne case.0x4a82d9.10
cmp dword [ebp - 0x20], 0xa
je 0x4a8326
cmp dword [ebp - 0x20], 0xd
jne case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
je case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
jne case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
je case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
jne case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
je case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
jne case.0x4a82d9.10
xor eax, eax
jmp 0x4a85e5
inc dword [ebp - 0x1c]
jmp 0x4a8287
mov dword [ebp - 0x94], edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x4a83bc.10
jmp dword [edx*4 + 0x4a83c3]
test byte [ebp + 0x18], 4
jne 0x4a8437
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
cmp byte [edi], 0xa
je case.0x4a83bc.10
cmp byte [edi], 0xd
je case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x4a840b
jmp case.0x4a83bc.10
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x10]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebx + 0x38]
sub eax, edi
cmp eax, dword [ebp - 0x20]
jge 0x4a8452
mov edx, dword [ebx + 0x38]
sub edx, edi
mov dword [ebp - 0x20], edx
add edi, dword [ebp - 0x20]
jmp case.0x4a83bc.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x4a846c
jmp case.0x4a83bc.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 4
je case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x4a84a9
jmp case.0x4a83bc.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x4a84e6
jmp case.0x4a83bc.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x4a851f
jmp case.0x4a83bc.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 0x10
jne case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x4a854d
jmp case.0x4a83bc.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x4a83bc.10
cmp edi, dword [ebx + 0x38]
jae case.0x4a83bc.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je case.0x4a83bc.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x4a857b
cmp edi, dword [ebp - 0x94]
jb 0x4a85d2
push 0
mov ecx, dword [ebp + 0x1c]
push ecx
mov ecx, edi
mov eax, dword [ebp + 0x18]
add edi, 0xffffffff
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push esi
push ecx
call fcn.004a6a0c
add esp, 0x1c
test eax, eax
je 0x4a85ca
mov eax, 1
jmp 0x4a85e5
cmp edi, dword [ebp - 0x94]
jae 0x4a85a1
xor eax, eax
jmp 0x4a85e5
mov dword [ebx], 0xfffffffb
xor eax, eax
jmp 0x4a85e5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret