Function at 0x51e676
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 0x51e6a6
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, 0x46
jle 0x51e76f
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 0x51e76a
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
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea eax, [esi + 3]
push eax
push edi
call fcn.0051e676
test eax, eax
je 0x51e729
mov eax, 1
jmp 0x520145
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 0x51e705
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 0x520145
mov eax, 0x46
cmp eax, 0x46
ja case.0x51e778.45
jmp dword [eax*4 + 0x51e77f]
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.0051e676
test eax, eax
je 0x51e8bf
mov eax, 1
jmp 0x520145
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.0x51e778.70
xor eax, eax
jmp 0x520145
cmp byte [esi + 3], 0x43
jne 0x51e935
xor edx, edx
mov dl, byte [esi + 4]
add edx, edx
mov dword [ebp - 0x3c], edx
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp + 0x10]
jge 0x51e913
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x3c]
cmp dword [eax + edx*4], 0
jl 0x51e913
mov ecx, 5
jmp 0x51e925
xor ecx, ecx
mov cl, byte [esi + 1]
shl ecx, 8
xor eax, eax
mov al, byte [esi + 2]
add ecx, eax
add ecx, 3
add esi, ecx
push esi
push edi
call fcn.0051e676
jmp 0x520145
push 3
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea edx, [esi + 3]
push edx
push edi
call fcn.0051e676
test eax, eax
je 0x51e97c
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 0x51e975
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 0x51e964
jmp 0x51e98d
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.0051e676
jmp 0x520145
add esi, 2
jmp 0x51e6a6
cmp dword [ebx + 0x2c], 0
je 0x51e9c2
cmp edi, dword [ebx + 0x3c]
jne 0x51e9c2
xor eax, eax
jmp 0x520145
mov dword [ebx + 0x40], edi
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
mov eax, 1
jmp 0x520145
xor edx, edx
mov dl, byte [esi + 1]
mov dword [ebp + 0x18], edx
add esi, 2
jmp 0x51e6a6
push 2
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea ecx, [esi + 3]
push ecx
push edi
call fcn.0051e676
test eax, eax
jne 0x51ea14
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.0x51e778.60
cmp byte [esi], 0x39
jne 0x51ea20
xor eax, eax
jmp 0x520145
test byte [ebp + 0x20], 1
je 0x51ea30
mov eax, 1
jmp 0x520145
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 0x51ea30
add esi, 3
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
jmp 0x51e6a6
push 2
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
lea edx, [esi + 3]
push edx
push edi
call fcn.0051e676
test eax, eax
je 0x51ea74
xor eax, eax
jmp 0x520145
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.0x51e778.61
test byte [ebp + 0x20], 1
je 0x51ea9a
mov eax, 1
jmp 0x520145
add esi, 3
jmp 0x51e6a6
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 0x51eabf
xor eax, eax
jmp 0x520145
add esi, 3
jmp 0x51e6a6
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x10
jge 0x51eade
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x44], ecx
jmp 0x51eb05
mov eax, dword [ebp - 0x20]
inc eax
shl eax, 2
push eax
call fcn.00545a4c
pop ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
jne 0x51eb05
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 0x51eb36
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 0x51eb1a
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebx + 0x30]
push edi
call fcn.0051e676
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 0x51eb7f
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 0x51eb63
lea eax, [ebp - 0xd0]
cmp eax, dword [ebp - 0x44]
je 0x51eb93
push dword [ebp - 0x44]
call fcn.00545938
pop ecx
cmp dword [ebp - 0x40], 0
jne 0x51eba0
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x44]
mov dword [ebp + 0x10], edx
mov edi, dword [ebx + 0x40]
inc esi
jmp 0x51e6a6
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.0051e676
test eax, eax
jne 0x51ebe5
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 0x51ebb5
cmp byte [esi], 0x41
je 0x51ebf6
cmp byte [esi], 0x38
je 0x51ebf6
xor eax, eax
jmp 0x520145
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 0x51ebf6
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x10], eax
mov edi, dword [ebx + 0x40]
cmp byte [esi], 0x39
je 0x51ec1f
cmp edi, dword [ebp - 0x4c]
jne 0x51ec27
add esi, 3
jmp 0x51e6a6
cmp byte [esi + 3], 0xc
jne 0x51ec3d
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 0x51ec7f
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.0051e676
test eax, eax
jne 0x51ec75
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x48]
push edi
call fcn.0051e676
test eax, eax
je 0x51ecbc
mov eax, 1
jmp 0x520145
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x48]
push edi
call fcn.0051e676
test eax, eax
jne 0x51ecb2
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.0051e676
test eax, eax
je 0x51ecbc
mov eax, 1
jmp 0x520145
xor eax, eax
jmp 0x520145
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.0x51e778.56
jmp 0x51e6a6
inc esi
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0051e676
test eax, eax
je 0x51ed00
mov eax, 1
jmp 0x520145
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 0x51ed00
add esi, 3
jmp 0x51e6a6
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 0x51ed21
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.0051e676
test eax, eax
je 0x51ed5b
mov eax, 1
jmp 0x520145
inc esi
jmp 0x51e6a6
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 0x51edb0
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x3d
je 0x51edb0
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x3e
je 0x51edb0
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x3f
je 0x51edb0
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x41
jne 0x51edc3
mov dword [ebx + 0x40], edi
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x44], edx
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x42
je 0x51ee2c
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 0x51ee2c
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [ebx + 0xc]
jl 0x51edf7
mov dword [ebx + 0x18], 1
jmp 0x51ee2c
mov eax, dword [ebx + 8]
sub eax, dword [ebp - 0x58]
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x5c]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x5c]
mov edx, edi
sub edx, dword [ebx + 0x34]
mov dword [ecx + eax*4 + 4], edx
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp - 0x5c]
jg 0x51ee2c
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 0x51ee3c
cmp edi, dword [ebp - 0x54]
jne 0x51ee44
add esi, 3
jmp 0x51e6a6
cmp byte [esi], 0x3b
jne 0x51ee86
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.0051e676
test eax, eax
jne 0x51ee7c
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.0051e676
test eax, eax
je 0x51eec3
mov eax, 1
jmp 0x520145
push 2
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push edi
call fcn.0051e676
test eax, eax
jne 0x51eeb9
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.0051e676
test eax, eax
je 0x51eec3
mov eax, 1
jmp 0x520145
xor eax, eax
jmp 0x520145
cmp dword [ebx + 0x1c], 0
je 0x51eedc
cmp edi, dword [ebx + 0x34]
jne 0x51eedc
xor eax, eax
jmp 0x520145
test byte [ebp + 0x18], 2
je case.0x51e778.1
cmp edi, dword [ebx + 0x34]
je 0x51eef4
cmp byte [edi - 1], 0xa
je 0x51eef4
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x34]
je 0x51ef06
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
test byte [ebp + 0x18], 2
je 0x51ef36
cmp edi, dword [ebx + 0x38]
jae 0x51ef23
cmp byte [edi], 0xa
je 0x51ef30
xor eax, eax
jmp 0x520145
cmp dword [ebx + 0x20], 0
je 0x51ef30
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp dword [ebx + 0x20], 0
je 0x51ef43
xor eax, eax
jmp 0x520145
cmp dword [ebx + 0x28], 0
jne case.0x51e778.11
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x51ef5e
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x51ef65
cmp byte [edi], 0xa
je 0x51ef65
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51ef77
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
mov edx, dword [ebx + 0x38]
dec edx
cmp edi, edx
jb 0x51ef92
mov ecx, dword [ebx + 0x38]
dec ecx
cmp edi, ecx
jne 0x51ef99
cmp byte [edi], 0xa
je 0x51ef99
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x34]
je 0x51efb2
xor edx, edx
mov dl, byte [edi - 1]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x51efb6
xor eax, eax
jmp 0x51efbb
mov eax, 1
mov dword [ebp - 0x60], eax
cmp edi, dword [ebx + 0x38]
jae 0x51efd0
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x51efd4
xor eax, eax
jmp 0x51efd9
mov eax, 1
mov dword [ebp - 0x64], eax
mov dl, byte [esi]
inc esi
cmp dl, 3
jne 0x51eff2
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x60]
sete al
and eax, 1
jmp 0x51effe
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x60]
setne al
and eax, 1
test eax, eax
je 0x51e6a6
xor eax, eax
jmp 0x520145
test byte [ebp + 0x18], 4
jne 0x51f029
cmp edi, dword [ebx + 0x38]
jae 0x51f029
cmp byte [edi], 0xa
jne 0x51f029
xor eax, eax
jmp 0x520145
mov edx, edi
inc edi
cmp edx, dword [ebx + 0x38]
jb 0x51f038
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51f053
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 4
je 0x51f05a
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51f075
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 4
jne 0x51f07c
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51f097
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
je 0x51f09e
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51f0b9
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne 0x51f0c0
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51f0db
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je 0x51f0e2
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
cmp edi, dword [ebx + 0x38]
jae 0x51f0fd
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
jne 0x51f104
xor eax, eax
jmp 0x520145
inc esi
jmp 0x51e6a6
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 0x51f12b
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x6c]
cmp dword [eax + edx*4], 0
jge 0x51f133
mov ecx, dword [ebx + 0x38]
sub ecx, edi
inc ecx
jmp 0x51f146
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 0x51f15d
sub cl, 2
jb 0x51f1a0
jmp 0x51f1e2
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 + 0x55bc1c]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x55bc22]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x51f205
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x51f205
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 0x51f1dd
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x51f205
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0051e5f3
test eax, eax
jne 0x51f1fd
xor eax, eax
jmp 0x520145
add edi, dword [ebp - 0x68]
jmp 0x51e6a6
cmp dword [ebp - 0x68], 0
je 0x51e6a6
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x51f247
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0051e5f3
test eax, eax
jne 0x51f239
xor eax, eax
jmp 0x520145
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51f21e
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51f2ab
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.0051e676
test eax, eax
je 0x51f280
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51f29c
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0051e5f3
test eax, eax
jne 0x51f2a3
xor eax, eax
jmp 0x520145
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
jmp 0x51f25f
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 0x51f2de
push dword [ebp + 0x18]
push ebx
push dword [ebp - 0x68]
push edi
push dword [ebp - 0x6c]
call fcn.0051e5f3
test eax, eax
je 0x51f2de
add edi, dword [ebp - 0x68]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x51f2bc
cmp edi, dword [ebp - 0x70]
jb 0x51f30c
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push esi
push edi
call fcn.0051e676
test eax, eax
je 0x51f304
mov eax, 1
jmp 0x520145
sub edi, dword [ebp - 0x68]
cmp edi, dword [ebp - 0x70]
jae 0x51f2e3
xor eax, eax
jmp 0x520145
lea edx, [esi + 1]
mov dword [ebp - 0x74], edx
add esi, 0x21
mov cl, byte [esi]
add cl, 0xd3
sub cl, 6
jb 0x51f330
sub cl, 2
jb 0x51f373
jmp 0x51f3b5
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 + 0x55bc1c]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x55bc22]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x51f3c0
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x51f3c0
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 0x51f3b0
mov dword [ebp - 0x14], 0x7fffffff
add esi, 5
jmp 0x51f3c0
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 0x51f41a
cmp edi, dword [ebx + 0x38]
jb 0x51f3db
xor eax, eax
jmp 0x520145
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 0x51f3fa
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x51f40f
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jle 0x51f3cf
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51f4a0
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.0051e676
test eax, eax
je 0x51f453
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51f460
cmp edi, dword [ebx + 0x38]
jb 0x51f467
xor eax, eax
jmp 0x520145
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 0x51f486
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x51f49b
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
jmp 0x51f432
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 0x51f4f7
cmp edi, dword [ebx + 0x38]
jae 0x51f4f7
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 0x51f4db
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x74]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x51f4f7
add edi, dword [ebp - 0x7c]
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x51f4b8
cmp edi, dword [ebp - 0x78]
jb 0x51f527
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.0051e676
test eax, eax
je 0x51f522
mov eax, 1
jmp 0x520145
cmp edi, dword [ebp - 0x78]
jae 0x51f4fc
xor eax, eax
jmp 0x520145
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 0x51f54a
xor eax, eax
jmp 0x520145
test byte [ebp + 0x18], 1
je 0x51f596
jmp 0x51f575
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 0x51f575
xor eax, eax
jmp 0x520145
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x51f552
jmp 0x51e6a6
mov cl, byte [esi]
inc esi
mov al, byte [edi]
inc edi
cmp cl, al
je 0x51f596
xor eax, eax
jmp 0x520145
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x80], 0xffffffff
test edx, edx
jg 0x51f585
jmp 0x51e6a6
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 0x51f629
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 0x51f629
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 + 0x55bc1c]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 0x55bc22]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x51f629
mov dword [ebp - 0x14], 0x7fffffff
mov eax, dword [ebx + 0x38]
sub eax, edi
cmp eax, dword [ebp - 0x10]
jge 0x51f63a
xor eax, eax
jmp 0x520145
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x51f76d
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 0x51f68f
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 0x51f684
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51f669
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51f6f5
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.0051e676
test eax, eax
je 0x51f6c8
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51f6e9
cmp edi, dword [ebx + 0x38]
jae 0x51f6e9
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 0x51f6f0
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
jmp 0x51f6a7
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 0x51f72b
cmp edi, dword [ebx + 0x38]
jae 0x51f72b
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 0x51f72b
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x51f709
cmp edi, dword [ebp - 0x84]
jb 0x51f761
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.0051e676
test eax, eax
je 0x51f759
mov eax, 1
jmp 0x520145
cmp edi, dword [ebp - 0x84]
jae 0x51f733
xor eax, eax
jmp 0x520145
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x51f79a
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
je 0x51f78f
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51f77c
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51f7f8
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.0051e676
test eax, eax
je 0x51f7d3
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51f7ec
cmp edi, dword [ebx + 0x38]
jae 0x51f7ec
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
je 0x51f7f3
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
jmp 0x51f7b2
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 0x51f826
cmp edi, dword [ebx + 0x38]
jae 0x51f826
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
jne 0x51f826
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x51f80c
cmp edi, dword [ebp - 0x88]
jb 0x51f85c
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.0051e676
test eax, eax
je 0x51f854
mov eax, 1
jmp 0x520145
cmp edi, dword [ebp - 0x88]
jae 0x51f82e
xor eax, eax
jmp 0x520145
cmp edi, dword [ebx + 0x38]
jb 0x51f86f
xor eax, eax
jmp 0x520145
inc esi
test byte [ebp + 0x18], 1
je 0x51f89d
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 0x51e6a6
xor eax, eax
jmp 0x520145
mov dl, byte [esi]
inc esi
mov cl, byte [edi]
inc edi
cmp dl, cl
jne 0x51e6a6
xor eax, eax
jmp 0x520145
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 0x51f935
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 0x51f935
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 + 0x55bc1c]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x55bc22]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x51f935
mov dword [ebp - 0x14], 0x7fffffff
mov ecx, dword [ebx + 0x38]
sub ecx, edi
cmp ecx, dword [ebp - 0x10]
jge 0x51f946
xor eax, eax
jmp 0x520145
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x20], edx
inc esi
test byte [ebp + 0x18], 1
je 0x51fa79
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 0x51f99b
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 0x51f990
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51f975
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51fa01
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.0051e676
test eax, eax
je 0x51f9d4
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51f9f5
cmp edi, dword [ebx + 0x38]
jae 0x51f9f5
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 0x51f9fc
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
jmp 0x51f9b3
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 0x51fa37
cmp edi, dword [ebx + 0x38]
jae 0x51fa37
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 0x51fa37
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x51fa15
cmp edi, dword [ebp - 0x8c]
jb 0x51fa6d
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.0051e676
test eax, eax
je 0x51fa65
mov eax, 1
jmp 0x520145
cmp edi, dword [ebp - 0x8c]
jae 0x51fa3f
xor eax, eax
jmp 0x520145
mov dword [ebp - 0x1c], 1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jg 0x51faa6
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
jne 0x51fa9b
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fa88
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51fb04
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.0051e676
test eax, eax
je 0x51fadf
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51faf8
cmp edi, dword [ebx + 0x38]
jae 0x51faf8
mov cl, byte [edi]
inc edi
xor eax, eax
mov al, cl
cmp eax, dword [ebp - 0x20]
jne 0x51faff
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
jmp 0x51fabe
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 0x51fb32
cmp edi, dword [ebx + 0x38]
jae 0x51fb32
xor eax, eax
mov al, byte [edi]
cmp eax, dword [ebp - 0x20]
je 0x51fb32
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x51fb18
cmp edi, dword [ebp - 0x90]
jb 0x51fb68
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.0051e676
test eax, eax
je 0x51fb60
mov eax, 1
jmp 0x520145
cmp edi, dword [ebp - 0x90]
jae 0x51fb3a
xor eax, eax
jmp 0x520145
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 0x51fbf9
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 0x51fbf9
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 + 0x55bc1c]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 0x55bc22]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x51fbf9
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 0x51fc12
xor eax, eax
jmp 0x520145
cmp dword [ebp - 0x10], 0
jle case.0x51fc2b.10
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x51fc2b.10
jmp dword [edx*4 + 0x51fc32]
test byte [ebp + 0x18], 4
jne 0x51fc99
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
cmp al, 0xa
jne 0x51fc89
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fc7b
jmp case.0x51fc2b.10
add edi, dword [ebp - 0x10]
jmp case.0x51fc2b.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
je 0x51fccb
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fcb4
jmp case.0x51fc2b.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne 0x51fd05
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fcee
jmp case.0x51fc2b.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je 0x51fd3f
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fd28
jmp case.0x51fc2b.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
jne 0x51fd79
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fd62
jmp case.0x51fc2b.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
je 0x51fdac
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fd95
jmp case.0x51fc2b.10
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
jg case.0x51fc2b.10
mov al, byte [edi]
inc edi
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x51fddf
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x10]
jle 0x51fdc8
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x14]
je 0x51e6a6
cmp dword [ebp - 0x24], 0
je 0x51ff16
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.0051e676
test eax, eax
je 0x51fe27
mov eax, 1
jmp 0x520145
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge 0x51fe34
cmp edi, dword [ebx + 0x38]
jb 0x51fe3b
xor eax, eax
jmp 0x520145
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.0x51fe52.10
jmp dword [ecx*4 + 0x51fe59]
test byte [ebp + 0x18], 4
jne case.0x51fe52.10
cmp dword [ebp - 0x20], 0xa
jne case.0x51fe52.10
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
je case.0x51fe52.10
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 4
jne case.0x51fe52.10
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
je case.0x51fe52.10
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 1
jne case.0x51fe52.10
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
je case.0x51fe52.10
xor eax, eax
jmp 0x520145
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], 0x10
jne case.0x51fe52.10
xor eax, eax
jmp 0x520145
inc dword [ebp - 0x1c]
jmp 0x51fe06
mov dword [ebp - 0x94], edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x51ff2b.10
jmp dword [edx*4 + 0x51ff32]
test byte [ebp + 0x18], 4
jne 0x51ff9d
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
cmp byte [edi], 0xa
je case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x51ff7a
jmp case.0x51ff2b.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 0x51ffb8
mov edx, dword [ebx + 0x38]
sub edx, edi
mov dword [ebp - 0x20], edx
add edi, dword [ebp - 0x20]
jmp case.0x51ff2b.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x51ffd2
jmp case.0x51ff2b.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 4
je case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x52000f
jmp case.0x51ff2b.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x52004c
jmp case.0x51ff2b.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
xor edx, edx
mov dl, byte [edi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jl 0x520085
jmp case.0x51ff2b.10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
xor eax, eax
mov al, byte [edi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 0x10
jne case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jl 0x5200b3
jmp case.0x51ff2b.10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jge case.0x51ff2b.10
cmp edi, dword [ebx + 0x38]
jae case.0x51ff2b.10
xor ecx, ecx
mov cl, byte [edi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je case.0x51ff2b.10
inc edi
inc dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jl 0x5200e1
cmp edi, dword [ebp - 0x94]
jb 0x520132
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.0051e676
test eax, eax
je 0x52012a
mov eax, 1
jmp 0x520145
cmp edi, dword [ebp - 0x94]
jae 0x520107
xor eax, eax
jmp 0x520145
mov dword [ebx], 0xfffffffb
xor eax, eax
jmp 0x520145
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c