Function at 0x52af2f
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 0x52af5f
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edi
lea ecx, [ebp - 0xc]
mov dword [ebp + 0x1c], ecx
xor eax, eax
mov al, byte [esi]
xor edx, edx
mov dword [ebp - 0x24], edx
cmp eax, 0x47
jle 0x52b043
add eax, 0xffffffb9
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x96
jle 0x52af92
xor edx, edx
mov dl, byte [esi + 4]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 5]
or edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, eax
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebx + 0xc]
jge 0x52b03e
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x28]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x28]
mov edx, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [ebx + 8]
sub eax, dword [ebp - 0x2c]
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
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea eax, [esi + 3]
push eax
push edi
call fcn.0052af2f
test eax, eax
je 0x52affd
mov eax, 1
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x52afd9
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov dword [eax + edx*4], ecx
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
mov dword [eax + edx*4 + 4], ecx
mov edx, dword [ebx + 8]
sub edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x38]
mov dword [eax + edx*4], ecx
xor eax, eax
jmp 0x52ca53
mov eax, 0x47
cmp eax, 0x47
ja case.0x52b04c.45
jmp dword [eax*4 + 0x52b053]
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea edx, [esi + 3]
push edx
push edi
call fcn.0052af2f
test eax, eax
je 0x52b197
mov eax, 1
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je case.0x52b04c.71
xor eax, eax
jmp 0x52ca53
cmp byte [esi + 3], 0x43
jne 0x52b217
xor edx, edx
mov dl, byte [esi + 4]
shl edx, 9
xor ecx, ecx
mov cl, byte [esi + 5]
add ecx, ecx
or edx, ecx
mov dword [ebp - 0x3c], edx
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp + 0x10]
jge 0x52b1f5
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x3c]
cmp dword [edx + ecx*4], 0
jl 0x52b1f5
mov eax, 6
jmp 0x52b207
xor eax, eax
mov al, byte [esi + 1]
shl eax, 8
xor edx, edx
mov dl, byte [esi + 2]
add eax, edx
add eax, 3
add esi, eax
push esi
push edi
call fcn.0052af2f
jmp 0x52ca53
push 3
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea ecx, [esi + 3]
push ecx
push edi
call fcn.0052af2f
test eax, eax
je 0x52b25e
xor eax, eax
mov al, byte [esi + 4]
shl eax, 8
xor edx, edx
mov dl, byte [esi + 5]
add eax, edx
add eax, 3
add esi, eax
jmp 0x52b257
xor ecx, ecx
mov cl, byte [esi + 1]
shl ecx, 8
xor eax, eax
mov al, byte [esi + 2]
add ecx, eax
add esi, ecx
cmp byte [esi], 0x38
je 0x52b246
jmp 0x52b26f
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
add esi, 3
push esi
push edi
call fcn.0052af2f
jmp 0x52ca53
add esi, 3
jmp 0x52af5f
cmp dword [ebx + 0x2c], 0
je 0x52b2a4
cmp edi, dword [ebx + 0x3c]
jne 0x52b2a4
xor eax, eax
jmp 0x52ca53
mov dword [ebx + 0x40], edi
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
mov eax, 1
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
mov dword [ebp + 0x18], edx
add esi, 2
jmp 0x52af5f
push 2
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea ecx, [esi + 3]
push ecx
push edi
call fcn.0052af2f
test eax, eax
jne 0x52b2f6
xor eax, eax
mov al, byte [esi + 1]
shl eax, 8
xor edx, edx
mov dl, byte [esi + 2]
add eax, edx
add esi, eax
cmp byte [esi], 0x38
je case.0x52b04c.60
cmp byte [esi], 0x39
jne 0x52b302
xor eax, eax
jmp 0x52ca53
test byte [ebp + 0x20], 1
je 0x52b312
mov eax, 1
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x52b312
add esi, 3
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
jmp 0x52af5f
push 2
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea edx, [esi + 3]
push edx
push edi
call fcn.0052af2f
test eax, eax
je 0x52b356
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je case.0x52b04c.61
test byte [ebp + 0x20], 1
je 0x52b37c
mov eax, 1
jmp 0x52ca53
add esi, 3
jmp 0x52af5f
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
sub edi, edx
cmp edi, dword [ebx + 0x34]
jae 0x52b3a1
xor eax, eax
jmp 0x52ca53
add esi, 3
jmp 0x52af5f
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x10
jge 0x52b3c0
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x44], ecx
jmp 0x52b3e7
mov eax, dword [ebp - 0x20]
inc eax
shl eax, 2
push eax
call fcn.00559d70
pop ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x52b3e7
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 0x52b418
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 0x52b3fc
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebx + 0x30]
push edi
call fcn.0052af2f
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x44]
add eax, 4
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x20]
jg 0x52b461
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 0x52b445
lea eax, [ebp - 0xd0]
cmp eax, dword [ebp - 0x44]
je 0x52b475
push dword [ebp - 0x44]
call fcn.00559c5c
pop ecx
cmp dword [ebp - 0x40], 0
jne 0x52b482
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x44]
mov dword [ebp + 0x10], edx
mov edi, dword [ebx + 0x40]
inc esi
jmp 0x52af5f
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], edi
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea eax, [esi + 3]
push eax
push edi
call fcn.0052af2f
test eax, eax
jne 0x52b4c7
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x52b497
cmp byte [esi], 0x41
je 0x52b4d8
cmp byte [esi], 0x38
je 0x52b4d8
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x52b4d8
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
mov edi, dword [ebx + 0x40]
cmp byte [esi], 0x39
je 0x52b501
cmp edi, dword [ebp - 0x4c]
jne 0x52b509
add esi, 3
jmp 0x52af5f
cmp byte [esi + 3], 0xc
jne 0x52b51f
mov eax, dword [ebp + 0x18]
and eax, 0xfffffff8
xor edx, edx
mov dl, byte [esi + 4]
or eax, edx
mov dword [ebp + 0x18], eax
cmp byte [esi], 0x3b
jne 0x52b561
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
add esi, 3
push esi
push edi
call fcn.0052af2f
test eax, eax
jne 0x52b557
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x48]
push edi
call fcn.0052af2f
test eax, eax
je 0x52b59e
mov eax, 1
jmp 0x52ca53
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x48]
push edi
call fcn.0052af2f
test eax, eax
jne 0x52b594
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
add esi, 3
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52b59e
mov eax, 1
jmp 0x52ca53
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je case.0x52b04c.56
jmp 0x52af5f
inc esi
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52b5e2
mov eax, 1
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
add esi, edx
cmp byte [esi], 0x38
je 0x52b5e2
add esi, 3
jmp 0x52af5f
lea eax, [esi + 1]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [eax + 2]
add edx, ecx
add eax, edx
cmp byte [eax], 0x38
je 0x52b603
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
add eax, 3
push eax
push edi
call fcn.0052af2f
test eax, eax
je 0x52b63d
mov eax, 1
jmp 0x52ca53
inc esi
jmp 0x52af5f
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
mov ecx, esi
sub ecx, edx
xor eax, eax
mov al, byte [esi + 2]
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 0x52b692
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x3d
je 0x52b692
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x3e
je 0x52b692
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x3f
je 0x52b692
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x41
jne 0x52b6a5
mov dword [ebx + 0x40], edi
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x42
je 0x52b733
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
add eax, 0xffffffb9
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0x96
jle 0x52b6df
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx + 4]
shl ecx, 8
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax + 5]
or ecx, edx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
add ecx, ecx
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x5c], 0
jle 0x52b733
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebx + 0xc]
jl 0x52b6fe
mov dword [ebx + 0x18], 1
jmp 0x52b733
mov edx, dword [ebx + 8]
sub edx, dword [ebp - 0x5c]
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + edx*4]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x58]
mov dword [edx + ecx*4], eax
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x58]
mov ecx, edi
sub ecx, dword [ebx + 0x34]
mov dword [eax + edx*4 + 4], ecx
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x58]
jg 0x52b733
mov edx, dword [ebp - 0x58]
add edx, 2
mov dword [ebp + 0x10], edx
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x18], ecx
cmp byte [esi], 0x39
je 0x52b743
cmp edi, dword [ebp - 0x54]
jne 0x52b74b
add esi, 3
jmp 0x52af5f
cmp byte [esi], 0x3b
jne 0x52b78d
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
add esi, 3
push esi
push edi
call fcn.0052af2f
test eax, eax
jne 0x52b783
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.0052af2f
test eax, eax
je 0x52b7ca
mov eax, 1
jmp 0x52ca53
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.0052af2f
test eax, eax
jne 0x52b7c0
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
add esi, 3
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52b7ca
mov eax, 1
jmp 0x52ca53
xor eax, eax
jmp 0x52ca53
cmp dword [ebx + 0x1c], 0
je 0x52b7e3
cmp edi, dword [ebx + 0x34]
jne 0x52b7e3
xor eax, eax
jmp 0x52ca53
test byte [ebp + 0x18], 2
je case.0x52b04c.1
cmp edi, dword [ebx + 0x34]
je 0x52b7fb
cmp byte [edi - 1], 0xa
je 0x52b7fb
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x34]
je 0x52b80d
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
test byte [ebp + 0x18], 2
je 0x52b83d
cmp edi, dword [ebx + 0x38]
jae 0x52b82a
cmp byte [edi], 0xa
je 0x52b837
xor eax, eax
jmp 0x52ca53
cmp dword [ebx + 0x20], 0
je 0x52b837
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp dword [ebx + 0x20], 0
je 0x52b84a
xor eax, eax
jmp 0x52ca53
cmp dword [ebx + 0x28], 0
jne case.0x52b04c.11
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x52b865
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x52b86c
cmp byte [edi], 0xa
je 0x52b86c
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52b87e
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x52b899
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x52b8a0
cmp byte [edi], 0xa
je 0x52b8a0
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x34]
je 0x52b8b9
xor edx, edx
mov dl, byte [edi - 1]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x52b8bd
xor eax, eax
jmp 0x52b8c2
mov eax, 1
mov dword [ebp - 0x60], eax
cmp edi, dword [ebx + 0x38]
jae 0x52b8d7
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x52b8db
xor eax, eax
jmp 0x52b8e0
mov eax, 1
mov dword [ebp - 0x64], eax
mov dl, byte [esi]
inc esi
cmp dl, 3
jne 0x52b8f9
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x60]
sete al
and eax, 1
jmp 0x52b905
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x60]
setne al
and eax, 1
test eax, eax
je 0x52af5f
xor eax, eax
jmp 0x52ca53
test byte [ebp + 0x18], 4
jne 0x52b930
cmp edi, dword [ebx + 0x38]
jae 0x52b930
cmp byte [edi], 0xa
jne 0x52b930
xor eax, eax
jmp 0x52ca53
mov edx, edi
inc edi
cmp edx, dword [ebx + 0x38]
jb 0x52b93f
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52b95a
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 4
je 0x52b961
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52b97c
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 4
jne 0x52b983
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52b99e
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
je 0x52b9a5
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52b9c0
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne 0x52b9c7
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52b9e2
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je 0x52b9e9
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
cmp edi, dword [ebx + 0x38]
jae 0x52ba04
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
jne 0x52ba0b
xor eax, eax
jmp 0x52ca53
inc esi
jmp 0x52af5f
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 9
xor ecx, ecx
mov cl, byte [esi + 2]
add ecx, ecx
or edx, ecx
mov dword [ebp - 0x6c], edx
add esi, 3
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp + 0x10]
jge 0x52ba3c
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x6c]
cmp dword [edx + ecx*4], 0
jge 0x52ba44
mov eax, dword [ebx + 0x38]
sub eax, edi
inc eax
jmp 0x52ba57
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [edx + ecx*4 + 4]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x6c]
sub eax, dword [edx + ecx*4]
mov dword [ebp - 0x68], eax
mov al, byte [esi]
add al, 0xd3
sub al, 6
jb 0x52ba6b
sub al, 2
jb 0x52baae
jmp 0x52baf0
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffd3
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp - 0x20], 1
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x56f7f0]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ecx + 0x56f7f6]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x52bb13
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x52bb13
cmp byte [esi], 0x34
sete dl
and edx, 1
mov dword [ebp - 0x24], edx
xor ecx, ecx
mov cl, byte [esi + 1]
shl ecx, 8
xor eax, eax
mov al, byte [esi + 2]
add ecx, eax
mov dword [ebp - 0x10], ecx
xor edx, edx
mov dl, byte [esi + 3]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 4]
add edx, ecx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x52baeb
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x52bb13
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0052aeac
test eax, eax
jne 0x52bb0b
xor eax, eax
jmp 0x52ca53
add edi, dword [ebp - 0x68]
jmp 0x52af5f
cmp dword [ebp - 0x68], 0
je 0x52af5f
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x52bb55
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0052aeac
test eax, eax
jne 0x52bb47
xor eax, eax
jmp 0x52ca53
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52bb2c
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52bbb9
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52bb8e
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52bbaa
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0052aeac
test eax, eax
jne 0x52bbb1
xor eax, eax
jmp 0x52ca53
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
jmp 0x52bb6d
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 0x52bbec
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0052aeac
test eax, eax
je 0x52bbec
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52bbca
cmp edi, dword [ebp - 0x70]
jb 0x52bc1a
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52bc12
mov eax, 1
jmp 0x52ca53
sub edi, dword [ebp - 0x68]
cmp edi, dword [ebp - 0x70]
jae 0x52bbf1
xor eax, eax
jmp 0x52ca53
lea edx, [esi + 1]
mov dword [ebp - 0x74], edx
add esi, 0x21
mov cl, byte [esi]
add cl, 0xd3
sub cl, 6
jb 0x52bc3e
sub cl, 2
jb 0x52bc81
jmp 0x52bcc3
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]
xor eax, eax
mov al, byte [ecx + 0x56f7f0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x56f7f6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x52bcce
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x52bcce
cmp byte [esi], 0x34
sete al
and eax, 1
mov dword [ebp - 0x24], eax
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
mov dword [ebp - 0x10], edx
xor eax, eax
mov al, byte [esi + 3]
shl eax, 8
xor edx, edx
mov dl, byte [esi + 4]
add eax, edx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x52bcbe
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x52bcce
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 0x52bd28
cmp edi, dword [ebx + 0x38]
jb 0x52bce9
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [edi]
mov dword [ebp - 0x20], edx
inc edi
mov ecx, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 0x20]
test edx, edx
jns 0x52bd08
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x52bd1d
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jle 0x52bcdd
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52bdae
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52bd61
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52bd6e
cmp edi, dword [ebx + 0x38]
jb 0x52bd75
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [edi]
mov dword [ebp - 0x20], edx
inc edi
mov ecx, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 0x20]
test edx, edx
jns 0x52bd94
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x52bda9
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
jmp 0x52bd40
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 0x52be05
cmp edi, dword [ebx + 0x38]
jae 0x52be05
xor edx, edx
mov dl, byte [edi]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 0x20]
test edx, edx
jns 0x52bde9
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x52be05
add edi, dword [ebp - 0x7c]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52bdc6
cmp edi, dword [ebp - 0x78]
jb 0x52be35
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
mov ecx, edi
add edi, 0xffffffff
push ecx
call fcn.0052af2f
test eax, eax
je 0x52be30
mov eax, 1
jmp 0x52ca53
cmp edi, dword [ebp - 0x78]
jae 0x52be0a
xor eax, eax
jmp 0x52ca53
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 0x52be58
xor eax, eax
jmp 0x52ca53
test byte [ebp + 0x18], 1
je 0x52bea4
jmp 0x52be83
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 0x52be83
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x52be60
jmp 0x52af5f
mov cl, byte [esi]
inc esi
mov al, byte [edi]
inc edi
cmp cl, al
je 0x52bea4
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x52be93
jmp 0x52af5f
xor ecx, ecx
mov cl, byte [esi + 1]
shl ecx, 8
xor eax, eax
mov al, byte [esi + 2]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
add esi, 3
jmp 0x52bf37
xor edx, edx
mov dword [ebp - 0x10], edx
xor eax, eax
mov al, byte [esi + 1]
shl eax, 8
xor edx, edx
mov dl, byte [esi + 2]
add eax, edx
mov dword [ebp - 0x14], eax
cmp byte [esi], 0x19
sete cl
and ecx, 1
mov dword [ebp - 0x24], ecx
add esi, 3
jmp 0x52bf37
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]
xor eax, eax
mov al, byte [ecx + 0x56f7f0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x56f7f6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x52bf37
mov dword [ebp - 0x14], 0x7fffffff
mov eax, dword [ebx + 0x38]
sub eax, edi
cmp eax, dword [ebp - 0x10]
jge 0x52bf48
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x52c07b
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 0x52bf9d
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x10]
xor eax, eax
mov al, byte [ecx + edx]
cmp eax, dword [ebp - 0x20]
je 0x52bf92
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52bf77
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52c003
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52bfd6
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52bff7
cmp edi, dword [ebx + 0x38]
jae 0x52bff7
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x20]
je 0x52bffe
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
jmp 0x52bfb5
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 0x52c039
cmp edi, dword [ebx + 0x38]
jae 0x52c039
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 0x52c039
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52c017
cmp edi, dword [ebp - 0x84]
jb 0x52c06f
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
mov edx, edi
add edi, 0xffffffff
push edx
call fcn.0052af2f
test eax, eax
je 0x52c067
mov eax, 1
jmp 0x52ca53
cmp edi, dword [ebp - 0x84]
jae 0x52c041
xor eax, eax
jmp 0x52ca53
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x52c0a8
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
je 0x52c09d
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c08a
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52c106
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52c0e1
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52c0fa
cmp edi, dword [ebx + 0x38]
jae 0x52c0fa
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
je 0x52c101
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
jmp 0x52c0c0
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 0x52c134
cmp edi, dword [ebx + 0x38]
jae 0x52c134
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
jne 0x52c134
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52c11a
cmp edi, dword [ebp - 0x88]
jb 0x52c16a
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
mov ecx, edi
add edi, 0xffffffff
push ecx
call fcn.0052af2f
test eax, eax
je 0x52c162
mov eax, 1
jmp 0x52ca53
cmp edi, dword [ebp - 0x88]
jae 0x52c13c
xor eax, eax
jmp 0x52ca53
cmp edi, dword [ebx + 0x38]
jb 0x52c17d
xor eax, eax
jmp 0x52ca53
inc esi
test byte [ebp + 0x18], 1
je 0x52c1ab
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 0x52af5f
xor eax, eax
jmp 0x52ca53
mov dl, byte [esi]
inc esi
mov cl, byte [edi]
inc edi
cmp dl, cl
jne 0x52af5f
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edx
add esi, 3
jmp 0x52c243
xor eax, eax
mov dword [ebp - 0x10], eax
xor ecx, ecx
mov cl, byte [esi + 1]
shl ecx, 8
xor eax, eax
mov al, byte [esi + 2]
add ecx, eax
mov dword [ebp - 0x14], ecx
cmp byte [esi], 0x22
sete dl
and edx, 1
mov dword [ebp - 0x24], edx
add esi, 3
jmp 0x52c243
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]
xor ecx, ecx
mov cl, byte [edx + 0x56f7f0]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x56f7f6]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x52c243
mov dword [ebp - 0x14], 0x7fffffff
mov ecx, dword [ebx + 0x38]
sub ecx, edi
cmp ecx, dword [ebp - 0x10]
jge 0x52c254
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x52c387
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 0x52c2a9
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x10]
xor eax, eax
mov al, byte [ecx + edx]
cmp eax, dword [ebp - 0x20]
jne 0x52c29e
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c283
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52c30f
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52c2e2
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52c303
cmp edi, dword [ebx + 0x38]
jae 0x52c303
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x20]
jne 0x52c30a
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
jmp 0x52c2c1
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 0x52c345
cmp edi, dword [ebx + 0x38]
jae 0x52c345
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 0x52c345
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52c323
cmp edi, dword [ebp - 0x8c]
jb 0x52c37b
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
mov edx, edi
add edi, 0xffffffff
push edx
call fcn.0052af2f
test eax, eax
je 0x52c373
mov eax, 1
jmp 0x52ca53
cmp edi, dword [ebp - 0x8c]
jae 0x52c34d
xor eax, eax
jmp 0x52ca53
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x52c3b4
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
jne 0x52c3a9
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c396
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52c412
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52c3ed
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52c406
cmp edi, dword [ebx + 0x38]
jae 0x52c406
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
jne 0x52c40d
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
jmp 0x52c3cc
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 0x52c440
cmp edi, dword [ebx + 0x38]
jae 0x52c440
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
je 0x52c440
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52c426
cmp edi, dword [ebp - 0x90]
jb 0x52c476
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
mov ecx, edi
add edi, 0xffffffff
push ecx
call fcn.0052af2f
test eax, eax
je 0x52c46e
mov eax, 1
jmp 0x52ca53
cmp edi, dword [ebp - 0x90]
jae 0x52c448
xor eax, eax
jmp 0x52ca53
xor edx, edx
mov dl, byte [esi + 1]
shl edx, 8
xor ecx, ecx
mov cl, byte [esi + 2]
add edx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x24], 1
add esi, 3
jmp 0x52c507
xor eax, eax
mov dword [ebp - 0x10], eax
xor ecx, ecx
mov cl, byte [esi + 1]
shl ecx, 8
xor eax, eax
mov al, byte [esi + 2]
add ecx, eax
mov dword [ebp - 0x14], ecx
cmp byte [esi], 0x2b
sete dl
and edx, 1
mov dword [ebp - 0x24], edx
add esi, 3
jmp 0x52c507
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]
xor ecx, ecx
mov cl, byte [edx + 0x56f7f0]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x56f7f6]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x52c507
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 0x52c520
xor eax, eax
jmp 0x52ca53
cmp dword [ebp - 0x10], 0
jle case.0x52c539.10
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x52c539.10
jmp dword [edx*4 + 0x52c540]
test byte [ebp + 0x18], 4
jne 0x52c5a7
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
cmp al, 0xa
jne 0x52c597
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c589
jmp case.0x52c539.10
add edi, dword [ebp - 0x10]
jmp case.0x52c539.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
je 0x52c5d9
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c5c2
jmp case.0x52c539.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne 0x52c613
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c5fc
jmp case.0x52c539.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je 0x52c64d
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c636
jmp case.0x52c539.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
jne 0x52c687
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c670
jmp case.0x52c539.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
je 0x52c6ba
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c6a3
jmp case.0x52c539.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52c539.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x52c6ed
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52c6d6
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x52af5f
cmp dword [ebp - 0x24], 0
je 0x52c824
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0052af2f
test eax, eax
je 0x52c735
mov eax, 1
jmp 0x52ca53
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52c742
cmp edi, dword [ebx + 0x38]
jb 0x52c749
xor eax, eax
jmp 0x52ca53
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.0x52c760.10
jmp dword [ecx*4 + 0x52c767]
test byte [ebp + 0x18], 4
jne case.0x52c760.10
cmp dword [ebp - 0x20], 0xa
jne case.0x52c760.10
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
je case.0x52c760.10
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
jne case.0x52c760.10
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
je case.0x52c760.10
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
jne case.0x52c760.10
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
je case.0x52c760.10
xor eax, eax
jmp 0x52ca53
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
jne case.0x52c760.10
xor eax, eax
jmp 0x52ca53
inc dword [ebp - 0x1c]
jmp 0x52c714
mov dword [ebp - 0x94], edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x52c839.10
jmp dword [edx*4 + 0x52c840]
test byte [ebp + 0x18], 4
jne 0x52c8ab
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
cmp byte [edi], 0xa
je case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52c888
jmp case.0x52c839.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 0x52c8c6
mov edx, dword [ebx + 0x38]
sub edx, edi
mov dword [ebp - 0x20], edx
add edi, dword [ebp - 0x20]
jmp case.0x52c839.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52c8e0
jmp case.0x52c839.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 4
je case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x52c91d
jmp case.0x52c839.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52c95a
jmp case.0x52c839.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52c993
jmp case.0x52c839.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 0x10
jne case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x52c9c1
jmp case.0x52c839.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x52c839.10
cmp edi, dword [ebx + 0x38]
jae case.0x52c839.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je case.0x52c839.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52c9ef
cmp edi, dword [ebp - 0x94]
jb 0x52ca40
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
mov ecx, edi
add edi, 0xffffffff
push ecx
call fcn.0052af2f
test eax, eax
je 0x52ca38
mov eax, 1
jmp 0x52ca53
cmp edi, dword [ebp - 0x94]
jae 0x52ca15
xor eax, eax
jmp 0x52ca53
mov dword [ebx], 0xfffffffb
xor eax, eax
jmp 0x52ca53
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c