Function at 0x528f73
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 0x528fa3
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 0x529087
add eax, 0xffffffb9
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x96
jle 0x528fd6
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 0x529082
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.00528f73
test eax, eax
je 0x529041
mov eax, 1
jmp 0x52aa97
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 0x52901d
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 0x52aa97
mov eax, 0x47
cmp eax, 0x47
ja case.0x529090.45
jmp dword [eax*4 + 0x529097]
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.00528f73
test eax, eax
je 0x5291db
mov eax, 1
jmp 0x52aa97
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.0x529090.71
xor eax, eax
jmp 0x52aa97
cmp byte [esi + 3], 0x43
jne 0x52925b
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 0x529239
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x3c]
cmp dword [edx + ecx*4], 0
jl 0x529239
mov eax, 6
jmp 0x52924b
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.00528f73
jmp 0x52aa97
push 3
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea ecx, [esi + 3]
push ecx
push edi
call fcn.00528f73
test eax, eax
je 0x5292a2
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 0x52929b
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 0x52928a
jmp 0x5292b3
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.00528f73
jmp 0x52aa97
add esi, 3
jmp 0x528fa3
cmp dword [ebx + 0x2c], 0
je 0x5292e8
cmp edi, dword [ebx + 0x3c]
jne 0x5292e8
xor eax, eax
jmp 0x52aa97
mov dword [ebx + 0x40], edi
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
mov eax, 1
jmp 0x52aa97
xor edx, edx
mov dl, byte [esi + 1]
mov dword [ebp + 0x18], edx
add esi, 2
jmp 0x528fa3
push 2
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea ecx, [esi + 3]
push ecx
push edi
call fcn.00528f73
test eax, eax
jne 0x52933a
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.0x529090.60
cmp byte [esi], 0x39
jne 0x529346
xor eax, eax
jmp 0x52aa97
test byte [ebp + 0x20], 1
je 0x529356
mov eax, 1
jmp 0x52aa97
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 0x529356
add esi, 3
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
jmp 0x528fa3
push 2
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea edx, [esi + 3]
push edx
push edi
call fcn.00528f73
test eax, eax
je 0x52939a
xor eax, eax
jmp 0x52aa97
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.0x529090.61
test byte [ebp + 0x20], 1
je 0x5293c0
mov eax, 1
jmp 0x52aa97
add esi, 3
jmp 0x528fa3
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 0x5293e5
xor eax, eax
jmp 0x52aa97
add esi, 3
jmp 0x528fa3
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x10
jge 0x529404
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x44], ecx
jmp 0x52942b
mov eax, dword [ebp - 0x20]
inc eax
shl eax, 2
push eax
call fcn.00557db4
pop ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x52942b
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 0x52945c
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 0x529440
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebx + 0x30]
push edi
call fcn.00528f73
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 0x5294a5
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 0x529489
lea eax, [ebp - 0xd0]
cmp eax, dword [ebp - 0x44]
je 0x5294b9
push dword [ebp - 0x44]
call fcn.00557ca0
pop ecx
cmp dword [ebp - 0x40], 0
jne 0x5294c6
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x44]
mov dword [ebp + 0x10], edx
mov edi, dword [ebx + 0x40]
inc esi
jmp 0x528fa3
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.00528f73
test eax, eax
jne 0x52950b
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 0x5294db
cmp byte [esi], 0x41
je 0x52951c
cmp byte [esi], 0x38
je 0x52951c
xor eax, eax
jmp 0x52aa97
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 0x52951c
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
mov edi, dword [ebx + 0x40]
cmp byte [esi], 0x39
je 0x529545
cmp edi, dword [ebp - 0x4c]
jne 0x52954d
add esi, 3
jmp 0x528fa3
cmp byte [esi + 3], 0xc
jne 0x529563
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 0x5295a5
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.00528f73
test eax, eax
jne 0x52959b
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x48]
push edi
call fcn.00528f73
test eax, eax
je 0x5295e2
mov eax, 1
jmp 0x52aa97
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x48]
push edi
call fcn.00528f73
test eax, eax
jne 0x5295d8
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.00528f73
test eax, eax
je 0x5295e2
mov eax, 1
jmp 0x52aa97
xor eax, eax
jmp 0x52aa97
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.0x529090.56
jmp 0x528fa3
inc esi
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.00528f73
test eax, eax
je 0x529626
mov eax, 1
jmp 0x52aa97
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 0x529626
add esi, 3
jmp 0x528fa3
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 0x529647
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.00528f73
test eax, eax
je 0x529681
mov eax, 1
jmp 0x52aa97
inc esi
jmp 0x528fa3
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 0x5296d6
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x3d
je 0x5296d6
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x3e
je 0x5296d6
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x3f
je 0x5296d6
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x41
jne 0x5296e9
mov dword [ebx + 0x40], edi
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x42
je 0x529777
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 0x529723
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 0x529777
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebx + 0xc]
jl 0x529742
mov dword [ebx + 0x18], 1
jmp 0x529777
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 0x529777
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 0x529787
cmp edi, dword [ebp - 0x54]
jne 0x52978f
add esi, 3
jmp 0x528fa3
cmp byte [esi], 0x3b
jne 0x5297d1
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.00528f73
test eax, eax
jne 0x5297c7
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.00528f73
test eax, eax
je 0x52980e
mov eax, 1
jmp 0x52aa97
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.00528f73
test eax, eax
jne 0x529804
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.00528f73
test eax, eax
je 0x52980e
mov eax, 1
jmp 0x52aa97
xor eax, eax
jmp 0x52aa97
cmp dword [ebx + 0x1c], 0
je 0x529827
cmp edi, dword [ebx + 0x34]
jne 0x529827
xor eax, eax
jmp 0x52aa97
test byte [ebp + 0x18], 2
je case.0x529090.1
cmp edi, dword [ebx + 0x34]
je 0x52983f
cmp byte [edi - 1], 0xa
je 0x52983f
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x34]
je 0x529851
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
test byte [ebp + 0x18], 2
je 0x529881
cmp edi, dword [ebx + 0x38]
jae 0x52986e
cmp byte [edi], 0xa
je 0x52987b
xor eax, eax
jmp 0x52aa97
cmp dword [ebx + 0x20], 0
je 0x52987b
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp dword [ebx + 0x20], 0
je 0x52988e
xor eax, eax
jmp 0x52aa97
cmp dword [ebx + 0x28], 0
jne case.0x529090.11
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x5298a9
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x5298b0
cmp byte [edi], 0xa
je 0x5298b0
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x5298c2
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x5298dd
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x5298e4
cmp byte [edi], 0xa
je 0x5298e4
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x34]
je 0x5298fd
xor edx, edx
mov dl, byte [edi - 1]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x529901
xor eax, eax
jmp 0x529906
mov eax, 1
mov dword [ebp - 0x60], eax
cmp edi, dword [ebx + 0x38]
jae 0x52991b
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x52991f
xor eax, eax
jmp 0x529924
mov eax, 1
mov dword [ebp - 0x64], eax
mov dl, byte [esi]
inc esi
cmp dl, 3
jne 0x52993d
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x60]
sete al
and eax, 1
jmp 0x529949
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x60]
setne al
and eax, 1
test eax, eax
je 0x528fa3
xor eax, eax
jmp 0x52aa97
test byte [ebp + 0x18], 4
jne 0x529974
cmp edi, dword [ebx + 0x38]
jae 0x529974
cmp byte [edi], 0xa
jne 0x529974
xor eax, eax
jmp 0x52aa97
mov edx, edi
inc edi
cmp edx, dword [ebx + 0x38]
jb 0x529983
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x52999e
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 4
je 0x5299a5
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x5299c0
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 4
jne 0x5299c7
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x5299e2
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
je 0x5299e9
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x529a04
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne 0x529a0b
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x529a26
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je 0x529a2d
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
cmp edi, dword [ebx + 0x38]
jae 0x529a48
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
jne 0x529a4f
xor eax, eax
jmp 0x52aa97
inc esi
jmp 0x528fa3
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 0x529a80
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x6c]
cmp dword [edx + ecx*4], 0
jge 0x529a88
mov eax, dword [ebx + 0x38]
sub eax, edi
inc eax
jmp 0x529a9b
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 0x529aaf
sub al, 2
jb 0x529af2
jmp 0x529b34
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 + 0x56d6a0]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ecx + 0x56d6a6]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x529b57
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x529b57
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 0x529b2f
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x529b57
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.00528ef0
test eax, eax
jne 0x529b4f
xor eax, eax
jmp 0x52aa97
add edi, dword [ebp - 0x68]
jmp 0x528fa3
cmp dword [ebp - 0x68], 0
je 0x528fa3
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x529b99
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.00528ef0
test eax, eax
jne 0x529b8b
xor eax, eax
jmp 0x52aa97
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x529b70
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x529bfd
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.00528f73
test eax, eax
je 0x529bd2
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x529bee
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.00528ef0
test eax, eax
jne 0x529bf5
xor eax, eax
jmp 0x52aa97
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
jmp 0x529bb1
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 0x529c30
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.00528ef0
test eax, eax
je 0x529c30
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x529c0e
cmp edi, dword [ebp - 0x70]
jb 0x529c5e
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.00528f73
test eax, eax
je 0x529c56
mov eax, 1
jmp 0x52aa97
sub edi, dword [ebp - 0x68]
cmp edi, dword [ebp - 0x70]
jae 0x529c35
xor eax, eax
jmp 0x52aa97
lea edx, [esi + 1]
mov dword [ebp - 0x74], edx
add esi, 0x21
mov cl, byte [esi]
add cl, 0xd3
sub cl, 6
jb 0x529c82
sub cl, 2
jb 0x529cc5
jmp 0x529d07
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 + 0x56d6a0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x56d6a6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x529d12
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x529d12
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 0x529d02
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x529d12
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 0x529d6c
cmp edi, dword [ebx + 0x38]
jb 0x529d2d
xor eax, eax
jmp 0x52aa97
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 0x529d4c
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x529d61
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jle 0x529d21
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x529df2
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.00528f73
test eax, eax
je 0x529da5
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x529db2
cmp edi, dword [ebx + 0x38]
jb 0x529db9
xor eax, eax
jmp 0x52aa97
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 0x529dd8
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x529ded
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
jmp 0x529d84
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 0x529e49
cmp edi, dword [ebx + 0x38]
jae 0x529e49
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 0x529e2d
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x529e49
add edi, dword [ebp - 0x7c]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x529e0a
cmp edi, dword [ebp - 0x78]
jb 0x529e79
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.00528f73
test eax, eax
je 0x529e74
mov eax, 1
jmp 0x52aa97
cmp edi, dword [ebp - 0x78]
jae 0x529e4e
xor eax, eax
jmp 0x52aa97
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 0x529e9c
xor eax, eax
jmp 0x52aa97
test byte [ebp + 0x18], 1
je 0x529ee8
jmp 0x529ec7
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 0x529ec7
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x529ea4
jmp 0x528fa3
mov cl, byte [esi]
inc esi
mov al, byte [edi]
inc edi
cmp cl, al
je 0x529ee8
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x529ed7
jmp 0x528fa3
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 0x529f7b
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 0x529f7b
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 + 0x56d6a0]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x56d6a6]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x529f7b
mov dword [ebp - 0x14], 0x7fffffff
mov eax, dword [ebx + 0x38]
sub eax, edi
cmp eax, dword [ebp - 0x10]
jge 0x529f8c
xor eax, eax
jmp 0x52aa97
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x52a0bf
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 0x529fe1
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 0x529fd6
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x529fbb
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x52a047
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.00528f73
test eax, eax
je 0x52a01a
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52a03b
cmp edi, dword [ebx + 0x38]
jae 0x52a03b
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 0x52a042
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
jmp 0x529ff9
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 0x52a07d
cmp edi, dword [ebx + 0x38]
jae 0x52a07d
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 0x52a07d
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52a05b
cmp edi, dword [ebp - 0x84]
jb 0x52a0b3
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.00528f73
test eax, eax
je 0x52a0ab
mov eax, 1
jmp 0x52aa97
cmp edi, dword [ebp - 0x84]
jae 0x52a085
xor eax, eax
jmp 0x52aa97
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x52a0ec
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
je 0x52a0e1
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a0ce
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x52a14a
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.00528f73
test eax, eax
je 0x52a125
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52a13e
cmp edi, dword [ebx + 0x38]
jae 0x52a13e
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
je 0x52a145
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
jmp 0x52a104
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 0x52a178
cmp edi, dword [ebx + 0x38]
jae 0x52a178
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
jne 0x52a178
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52a15e
cmp edi, dword [ebp - 0x88]
jb 0x52a1ae
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.00528f73
test eax, eax
je 0x52a1a6
mov eax, 1
jmp 0x52aa97
cmp edi, dword [ebp - 0x88]
jae 0x52a180
xor eax, eax
jmp 0x52aa97
cmp edi, dword [ebx + 0x38]
jb 0x52a1c1
xor eax, eax
jmp 0x52aa97
inc esi
test byte [ebp + 0x18], 1
je 0x52a1ef
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 0x528fa3
xor eax, eax
jmp 0x52aa97
mov dl, byte [esi]
inc esi
mov cl, byte [edi]
inc edi
cmp dl, cl
jne 0x528fa3
xor eax, eax
jmp 0x52aa97
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 0x52a287
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 0x52a287
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 + 0x56d6a0]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x56d6a6]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x52a287
mov dword [ebp - 0x14], 0x7fffffff
mov ecx, dword [ebx + 0x38]
sub ecx, edi
cmp ecx, dword [ebp - 0x10]
jge 0x52a298
xor eax, eax
jmp 0x52aa97
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x52a3cb
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 0x52a2ed
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 0x52a2e2
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a2c7
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x52a353
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.00528f73
test eax, eax
je 0x52a326
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52a347
cmp edi, dword [ebx + 0x38]
jae 0x52a347
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 0x52a34e
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
jmp 0x52a305
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 0x52a389
cmp edi, dword [ebx + 0x38]
jae 0x52a389
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 0x52a389
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52a367
cmp edi, dword [ebp - 0x8c]
jb 0x52a3bf
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.00528f73
test eax, eax
je 0x52a3b7
mov eax, 1
jmp 0x52aa97
cmp edi, dword [ebp - 0x8c]
jae 0x52a391
xor eax, eax
jmp 0x52aa97
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x52a3f8
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
jne 0x52a3ed
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a3da
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x52a456
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.00528f73
test eax, eax
je 0x52a431
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52a44a
cmp edi, dword [ebx + 0x38]
jae 0x52a44a
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
jne 0x52a451
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
jmp 0x52a410
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 0x52a484
cmp edi, dword [ebx + 0x38]
jae 0x52a484
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
je 0x52a484
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52a46a
cmp edi, dword [ebp - 0x90]
jb 0x52a4ba
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.00528f73
test eax, eax
je 0x52a4b2
mov eax, 1
jmp 0x52aa97
cmp edi, dword [ebp - 0x90]
jae 0x52a48c
xor eax, eax
jmp 0x52aa97
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 0x52a54b
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 0x52a54b
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 + 0x56d6a0]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x56d6a6]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x52a54b
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 0x52a564
xor eax, eax
jmp 0x52aa97
cmp dword [ebp - 0x10], 0
jle case.0x52a57d.10
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x52a57d.10
jmp dword [edx*4 + 0x52a584]
test byte [ebp + 0x18], 4
jne 0x52a5eb
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
cmp al, 0xa
jne 0x52a5db
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a5cd
jmp case.0x52a57d.10
add edi, dword [ebp - 0x10]
jmp case.0x52a57d.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
je 0x52a61d
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a606
jmp case.0x52a57d.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne 0x52a657
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a640
jmp case.0x52a57d.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je 0x52a691
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a67a
jmp case.0x52a57d.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
jne 0x52a6cb
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a6b4
jmp case.0x52a57d.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
je 0x52a6fe
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a6e7
jmp case.0x52a57d.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x52a57d.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x52a731
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x52a71a
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x528fa3
cmp dword [ebp - 0x24], 0
je 0x52a868
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.00528f73
test eax, eax
je 0x52a779
mov eax, 1
jmp 0x52aa97
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x52a786
cmp edi, dword [ebx + 0x38]
jb 0x52a78d
xor eax, eax
jmp 0x52aa97
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.0x52a7a4.10
jmp dword [ecx*4 + 0x52a7ab]
test byte [ebp + 0x18], 4
jne case.0x52a7a4.10
cmp dword [ebp - 0x20], 0xa
jne case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
je case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
jne case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
je case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
jne case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
je case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
jne case.0x52a7a4.10
xor eax, eax
jmp 0x52aa97
inc dword [ebp - 0x1c]
jmp 0x52a758
mov dword [ebp - 0x94], edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x52a87d.10
jmp dword [edx*4 + 0x52a884]
test byte [ebp + 0x18], 4
jne 0x52a8ef
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
cmp byte [edi], 0xa
je case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52a8cc
jmp case.0x52a87d.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 0x52a90a
mov edx, dword [ebx + 0x38]
sub edx, edi
mov dword [ebp - 0x20], edx
add edi, dword [ebp - 0x20]
jmp case.0x52a87d.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52a924
jmp case.0x52a87d.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 4
je case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x52a961
jmp case.0x52a87d.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52a99e
jmp case.0x52a87d.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x52a9d7
jmp case.0x52a87d.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 0x10
jne case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x52aa05
jmp case.0x52a87d.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x52a87d.10
cmp edi, dword [ebx + 0x38]
jae case.0x52a87d.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je case.0x52a87d.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52aa33
cmp edi, dword [ebp - 0x94]
jb 0x52aa84
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.00528f73
test eax, eax
je 0x52aa7c
mov eax, 1
jmp 0x52aa97
cmp edi, dword [ebp - 0x94]
jae 0x52aa59
xor eax, eax
jmp 0x52aa97
mov dword [ebx], 0xfffffffb
xor eax, eax
jmp 0x52aa97
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c