Function at 0x519420
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 4], eax
xor eax, eax
xor edx, edx
mov al, byte [edi]
mov dword [ebp - 0x1c], edx
cmp eax, 0x45
jle 0x519504
add eax, 0xffffffbb
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
add edx, edx
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebx + 0xc]
jge 0x5194ff
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + edx*4 + 4]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebx + 8]
sub eax, dword [ebp - 0x20]
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebx + 4]
mov ecx, esi
sub ecx, dword [ebx + 0x28]
mov dword [edx + eax*4], ecx
push esi
push 0
mov eax, dword [ebp + 0x18]
lea edx, [edi + 3]
push eax
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edx
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x5194be
mov eax, 1
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je 0x519497
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [eax + edx*4], ecx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + edx*4 + 4], ecx
mov edx, dword [ebx + 8]
sub edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov dword [eax + edx*4], ecx
xor eax, eax
jmp 0x51ae20
mov eax, 0x45
cmp eax, 0x45
ja case.0x51950d.45
jmp dword [eax*4 + 0x519514]
push esi
push 0
mov edx, dword [ebp + 0x18]
lea eax, [edi + 3]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519653
mov eax, 1
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je case.0x51950d.69
xor eax, eax
jmp 0x51ae20
cmp byte [edi + 3], 0x42
jne 0x5196cc
xor edx, edx
mov dl, byte [edi + 4]
add edx, edx
mov dword [ebp - 0x34], edx
push esi
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp + 0x10]
jge 0x5196a7
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x34]
cmp dword [ecx + eax*4], 0
jl 0x5196a7
mov edx, 5
jmp 0x5196b9
xor edx, edx
xor eax, eax
mov dl, byte [edi + 1]
mov al, byte [edi + 2]
shl edx, 8
add edx, eax
add edx, 3
add edi, edx
push edi
push esi
call fcn.00519420
add esp, 0x1c
jmp 0x51ae20
push 0
push 1
mov ecx, dword [ebp + 0x18]
lea edx, [edi + 3]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edx
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519718
xor ecx, ecx
xor eax, eax
mov cl, byte [edi + 4]
mov al, byte [edi + 5]
shl ecx, 8
add ecx, eax
add ecx, 3
add edi, ecx
jmp 0x519711
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je 0x519700
jmp 0x519729
xor eax, eax
xor edx, edx
mov al, byte [edi + 1]
mov dl, byte [edi + 2]
shl eax, 8
add eax, edx
add edi, eax
push esi
push 0
mov ecx, dword [ebp + 0x18]
add edi, 3
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
jmp 0x51ae20
add edi, 2
jmp 0x519438
mov dword [ebx + 0x30], esi
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x34], eax
mov eax, 1
jmp 0x51ae20
xor edx, edx
mov dl, byte [edi + 1]
add edi, 2
mov dword [ebp + 0x18], edx
jmp 0x519438
push 0
push 0
mov ecx, dword [ebp + 0x18]
lea edx, [edi + 3]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edx
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
jne 0x5197a6
xor ecx, ecx
xor eax, eax
mov cl, byte [edi + 1]
mov al, byte [edi + 2]
shl ecx, 8
add ecx, eax
add edi, ecx
cmp byte [edi], 0x37
je case.0x51950d.59
cmp byte [edi], 0x38
jne 0x5197b2
xor eax, eax
jmp 0x51ae20
cmp dword [ebp + 0x1c], 0
je 0x5197c2
mov eax, 1
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je 0x5197c2
add edi, 3
mov eax, dword [ebx + 0x34]
mov dword [ebp + 0x10], eax
jmp 0x519438
push 0
push 0
mov edx, dword [ebp + 0x18]
lea eax, [edi + 3]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51980b
xor eax, eax
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je case.0x51950d.60
cmp dword [ebp + 0x1c], 0
je 0x519831
mov eax, 1
jmp 0x51ae20
add edi, 3
jmp 0x519438
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
sub esi, edx
cmp esi, dword [ebx + 0x28]
jae 0x519856
xor eax, eax
jmp 0x51ae20
add edi, 3
jmp 0x519438
mov dword [ebp - 0x38], edi
push esi
push 0
mov edx, dword [ebp + 0x18]
lea eax, [edi + 3]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
jne 0x519894
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je 0x519861
cmp byte [edi], 0x40
je 0x5198a5
cmp byte [edi], 0x37
je 0x5198a5
xor eax, eax
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je 0x5198a5
mov eax, dword [ebx + 0x34]
mov dword [ebp + 0x10], eax
mov esi, dword [ebx + 0x30]
cmp byte [edi], 0x38
je 0x5198ce
cmp esi, dword [ebp + 0x20]
jne 0x5198d6
add edi, 3
jmp 0x519438
cmp byte [edi + 3], 0xc
jne 0x5198ec
mov eax, dword [ebp + 0x18]
xor edx, edx
mov dl, byte [edi + 4]
and eax, 0xfffffff8
or eax, edx
mov dword [ebp + 0x18], eax
cmp byte [edi], 0x3a
jne 0x519935
push esi
push 0
mov ecx, dword [ebp + 0x18]
add edi, 3
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
jne 0x51992b
push esi
push 0
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov ecx, dword [ebp - 0x38]
push ecx
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519979
mov eax, 1
jmp 0x51ae20
push esi
push 0
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ebp - 0x38]
push eax
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
jne 0x51996f
push esi
push 0
mov edx, dword [ebp + 0x18]
add edi, 3
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519979
mov eax, 1
jmp 0x51ae20
xor eax, eax
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je case.0x51950d.55
jmp 0x519438
push esi
push 0
mov eax, dword [ebp + 0x18]
inc edi
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x5199c0
mov eax, 1
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, edx
cmp byte [edi], 0x37
je 0x5199c0
add edi, 3
jmp 0x519438
lea eax, [edi + 1]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 1]
mov cl, byte [eax + 2]
shl edx, 8
add edx, ecx
add eax, edx
cmp byte [eax], 0x37
je 0x5199e1
push esi
push 0
mov edx, dword [ebp + 0x18]
add eax, 3
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519a1e
mov eax, 1
jmp 0x51ae20
inc edi
jmp 0x519438
xor edx, edx
mov ecx, edi
mov dl, byte [edi + 1]
xor eax, eax
shl edx, 8
mov al, byte [edi + 2]
sub ecx, edx
sub ecx, eax
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x3c]
cmp byte [edx], 0x3b
je 0x519a62
mov ecx, dword [ebp - 0x3c]
cmp byte [ecx], 0x3c
je 0x519a62
mov eax, dword [ebp - 0x3c]
cmp byte [eax], 0x3d
je 0x519a62
mov edx, dword [ebp - 0x3c]
cmp byte [edx], 0x3e
je 0x519a62
mov ecx, dword [ebp - 0x3c]
cmp byte [ecx], 0x40
jne 0x519a75
mov dword [ebx + 0x30], esi
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x34], eax
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x3c]
cmp byte [edx], 0x41
je 0x519acd
mov ecx, dword [ebp - 0x3c]
xor eax, eax
mov al, byte [ecx]
add eax, 0xffffffbb
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
add eax, eax
cmp dword [ebp - 0x40], 0
jle 0x519acd
cmp eax, dword [ebx + 0xc]
jl 0x519aa3
mov dword [ebx + 0x18], 1
jmp 0x519acd
mov edx, dword [ebx + 8]
sub edx, dword [ebp - 0x40]
mov ecx, dword [ebx + 4]
push dword [ecx + edx*4]
mov edx, dword [ebx + 4]
pop ecx
mov dword [edx + eax*4], ecx
mov edx, dword [ebx + 4]
mov ecx, esi
sub ecx, dword [ebx + 0x28]
mov dword [edx + eax*4 + 4], ecx
cmp eax, dword [ebp + 0x10]
jl 0x519acd
add eax, 2
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 4]
mov dword [ebp + 0x18], eax
cmp byte [edi], 0x38
je 0x519add
cmp esi, dword [ebp + 0x20]
jne 0x519ae5
add edi, 3
jmp 0x519438
cmp byte [edi], 0x3a
jne 0x519b2e
push esi
push 0
mov edx, dword [ebp + 0x18]
add edi, 3
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
jne 0x519b24
push esi
push 0
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
mov ecx, dword [ebp - 0x3c]
push ecx
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519b72
mov eax, 1
jmp 0x51ae20
push esi
push 0
mov edx, dword [ebp + 0x18]
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ebp - 0x3c]
push eax
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
jne 0x519b68
push esi
push 0
mov edx, dword [ebp + 0x18]
add edi, 3
push edx
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519b72
mov eax, 1
jmp 0x51ae20
xor eax, eax
jmp 0x51ae20
cmp dword [ebx + 0x1c], 0
je 0x519b8b
cmp esi, dword [ebx + 0x28]
jne 0x519b8b
xor eax, eax
jmp 0x51ae20
test byte [ebp + 0x18], 2
je case.0x51950d.1
cmp esi, dword [ebx + 0x28]
je 0x519ba3
cmp byte [esi - 1], 0xa
je 0x519ba3
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x28]
je 0x519bb5
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
test byte [ebp + 0x18], 2
je 0x519be5
cmp esi, dword [ebx + 0x2c]
jae 0x519bd2
cmp byte [esi], 0xa
je 0x519bdf
xor eax, eax
jmp 0x51ae20
cmp dword [ebx + 0x20], 0
je 0x519bdf
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp dword [ebx + 0x20], 0
je 0x519bf2
xor eax, eax
jmp 0x51ae20
cmp dword [ebx + 0x24], 0
jne case.0x51950d.11
mov edx, dword [ebx + 0x2c]
dec edx
cmp esi, edx
jb 0x519c0d
mov ecx, dword [ebx + 0x2c]
dec ecx
cmp esi, ecx
jne 0x519c14
cmp byte [esi], 0xa
je 0x519c14
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519c26
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
mov edx, dword [ebx + 0x2c]
dec edx
cmp esi, edx
jb 0x519c41
mov ecx, dword [ebx + 0x2c]
dec ecx
cmp esi, ecx
jne 0x519c48
cmp byte [esi], 0xa
je 0x519c48
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x28]
je 0x519c61
xor edx, edx
mov dl, byte [esi - 1]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x519c65
xor eax, eax
jmp 0x519c6a
mov eax, 1
mov dword [ebp - 0x44], eax
cmp esi, dword [ebx + 0x2c]
jae 0x519c7f
xor edx, edx
mov dl, byte [esi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 0x10
jne 0x519c83
xor eax, eax
jmp 0x519c88
mov eax, 1
mov dword [ebp - 0x48], eax
mov dl, byte [edi]
inc edi
cmp dl, 3
jne 0x519ca1
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp - 0x44]
sete al
and eax, 1
jmp 0x519cad
mov edx, dword [ebp - 0x48]
cmp edx, dword [ebp - 0x44]
setne al
and eax, 1
test eax, eax
je 0x519438
xor eax, eax
jmp 0x51ae20
test byte [ebp + 0x18], 4
jne 0x519cd8
cmp esi, dword [ebx + 0x2c]
jae 0x519cd8
cmp byte [esi], 0xa
jne 0x519cd8
xor eax, eax
jmp 0x51ae20
mov edx, esi
inc esi
cmp edx, dword [ebx + 0x2c]
jb 0x519ce7
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519d02
mov dl, byte [esi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc esi
test byte [eax + ecx], 4
je 0x519d09
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519d24
mov dl, byte [esi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc esi
test byte [eax + ecx], 4
jne 0x519d2b
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519d46
mov dl, byte [esi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc esi
test byte [eax + ecx], 1
je 0x519d4d
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519d68
mov dl, byte [esi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc esi
test byte [eax + ecx], 1
jne 0x519d6f
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519d8a
mov dl, byte [esi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc esi
test byte [eax + ecx], 0x10
je 0x519d91
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
cmp esi, dword [ebx + 0x2c]
jae 0x519dac
mov dl, byte [esi]
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x14]
inc esi
test byte [eax + ecx], 0x10
jne 0x519db3
xor eax, eax
jmp 0x51ae20
inc edi
jmp 0x519438
xor edx, edx
mov dl, byte [edi + 1]
add edx, edx
mov dword [ebp - 0x50], edx
add edi, 2
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp + 0x10]
jge 0x519dda
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x50]
cmp dword [eax + edx*4], 0
jge 0x519de2
mov ecx, dword [ebx + 0x2c]
sub ecx, esi
inc ecx
jmp 0x519df5
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x50]
mov ecx, dword [eax + edx*4 + 4]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x50]
sub ecx, dword [eax + edx*4]
mov dword [ebp - 0x4c], ecx
mov cl, byte [edi]
add cl, 0xd3
sub cl, 6
jb 0x519e0c
sub cl, 2
jb 0x519e4d
jmp 0x519e8f
xor eax, eax
mov al, byte [edi]
add eax, 0xffffffd3
mov dword [ebp - 0x18], eax
inc edi
test byte [ebp - 0x18], 1
setne dl
and edx, 1
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ecx + 0x614d40]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x18]
movsx ecx, byte [edx + 0x614d46]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0
jne 0x519eb8
mov dword [ebp - 0xc], closesocket
jmp 0x519eb8
cmp byte [edi], 0x34
sete al
and eax, 1
xor edx, edx
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
xor eax, eax
add edx, ecx
mov dword [ebp - 8], edx
xor edx, edx
mov al, byte [edi + 3]
mov dl, byte [edi + 4]
shl eax, 8
add eax, edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x519e8a
mov dword [ebp - 0xc], closesocket
add edi, 5
jmp 0x519eb8
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp - 0x4c]
push eax
push esi
mov edx, dword [ebp - 0x50]
push edx
call fcn.0051939c
add esp, 0x14
test eax, eax
jne 0x519eb0
xor eax, eax
jmp 0x51ae20
add esi, dword [ebp - 0x4c]
jmp 0x519438
cmp dword [ebp - 0x4c], 0
je 0x519438
mov dword [ebp - 0x14], 1
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jg 0x519f00
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp - 0x4c]
push eax
push esi
mov edx, dword [ebp - 0x50]
push edx
call fcn.0051939c
add esp, 0x14
test eax, eax
jne 0x519ef2
xor eax, eax
jmp 0x51ae20
add esi, dword [ebp - 0x4c]
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x519ed1
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x519f70
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519f3f
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x519f61
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp - 0x4c]
push eax
push esi
mov edx, dword [ebp - 0x50]
push edx
call fcn.0051939c
add esp, 0x14
test eax, eax
jne 0x519f68
xor eax, eax
jmp 0x51ae20
add esi, dword [ebp - 0x4c]
inc dword [ebp - 0x14]
jmp 0x519f18
mov dword [ebp - 0x54], esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge 0x519fa9
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp - 0x4c]
push edx
push esi
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.0051939c
add esp, 0x14
test eax, eax
je 0x519fa9
add esi, dword [ebp - 0x4c]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x519f81
cmp esi, dword [ebp - 0x54]
jb 0x519fdd
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x519fd5
mov eax, 1
jmp 0x51ae20
sub esi, dword [ebp - 0x4c]
cmp esi, dword [ebp - 0x54]
jae 0x519fae
xor eax, eax
jmp 0x51ae20
lea edx, [edi + 1]
add edi, 0x21
mov dword [ebp - 0x58], edx
mov cl, byte [edi]
add cl, 0xd3
sub cl, 6
jb 0x51a001
sub cl, 2
jb 0x51a042
jmp 0x51a084
xor eax, eax
mov al, byte [edi]
add eax, 0xffffffd3
mov dword [ebp - 0x18], eax
inc edi
test byte [ebp - 0x18], 1
setne dl
and edx, 1
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ecx + 0x614d40]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x18]
movsx ecx, byte [edx + 0x614d46]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0
jne 0x51a08f
mov dword [ebp - 0xc], closesocket
jmp 0x51a08f
cmp byte [edi], 0x34
sete al
and eax, 1
xor edx, edx
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
xor eax, eax
add edx, ecx
mov dword [ebp - 8], edx
xor edx, edx
mov al, byte [edi + 3]
mov dl, byte [edi + 4]
shl eax, 8
add eax, edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x51a07f
mov dword [ebp - 0xc], closesocket
add edi, 5
jmp 0x51a08f
mov ecx, 1
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
jg 0x51a0e9
cmp esi, dword [ebx + 0x2c]
jb 0x51a0aa
xor eax, eax
jmp 0x51ae20
xor edx, edx
mov eax, 1
mov dl, byte [esi]
inc esi
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
and ecx, 7
shl eax, cl
test edx, edx
jns 0x51a0c9
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x58]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x51a0de
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jle 0x51a09e
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x51a175
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0x20]
push ecx
push 0
mov eax, dword [ebp + 0x18]
push eax
push ebx
mov edx, dword [ebp + 0x10]
push edx
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a128
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x51a135
cmp esi, dword [ebx + 0x2c]
jb 0x51a13c
xor eax, eax
jmp 0x51ae20
xor edx, edx
mov eax, 1
mov dl, byte [esi]
inc esi
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
and ecx, 7
shl eax, cl
test edx, edx
jns 0x51a15b
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x58]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x51a170
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
jmp 0x51a101
mov dword [ebp - 0x5c], esi
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge 0x51a1c3
cmp esi, dword [ebx + 0x2c]
jae 0x51a1c3
xor edx, edx
mov eax, 1
mov dl, byte [esi]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
and ecx, 7
shl eax, cl
test edx, edx
jns 0x51a1a9
add edx, 7
sar edx, 3
mov ecx, dword [ebp - 0x58]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x51a1c3
inc esi
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x51a186
cmp esi, dword [ebp - 0x5c]
jb 0x51a1f9
mov ecx, dword [ebp + 0x20]
push ecx
push 0
mov eax, dword [ebp + 0x18]
mov ecx, esi
push eax
push ebx
mov edx, dword [ebp + 0x10]
add esi, 0xffffffff
push edx
push edi
push ecx
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a1f4
mov eax, 1
jmp 0x51ae20
cmp esi, dword [ebp - 0x5c]
jae 0x51a1c8
xor eax, eax
jmp 0x51ae20
xor edx, edx
mov dl, byte [edi + 1]
mov dword [ebp - 0x60], edx
add edi, 2
mov ecx, dword [ebx + 0x2c]
sub ecx, esi
cmp ecx, dword [ebp - 0x60]
jge 0x51a21c
xor eax, eax
jmp 0x51ae20
test byte [ebp + 0x18], 1
je 0x51a268
jmp 0x51a247
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x10]
mov dl, byte [eax + ecx]
mov cl, byte [esi]
inc esi
xor eax, eax
mov al, cl
mov ecx, dword [ebx + 0x10]
cmp dl, byte [ecx + eax]
je 0x51a247
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebp - 0x60]
add dword [ebp - 0x60], 0xffffffff
test edx, edx
jg 0x51a224
jmp 0x519438
mov cl, byte [edi]
inc edi
mov al, byte [esi]
inc esi
cmp cl, al
je 0x51a268
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebp - 0x60]
add dword [ebp - 0x60], 0xffffffff
test edx, edx
jg 0x51a257
jmp 0x519438
xor ecx, ecx
xor eax, eax
mov cl, byte [edi + 1]
mov al, byte [edi + 2]
shl ecx, 8
add ecx, eax
add edi, 3
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
jmp 0x51a2f9
xor edx, edx
xor eax, eax
mov dword [ebp - 8], edx
xor edx, edx
mov al, byte [edi + 1]
mov dl, byte [edi + 2]
shl eax, 8
add eax, edx
mov dword [ebp - 0xc], eax
cmp byte [edi], 0x19
sete cl
and ecx, 1
add edi, 3
mov dword [ebp - 0x1c], ecx
jmp 0x51a2f9
xor eax, eax
mov al, byte [edi]
add eax, 0xffffffee
mov dword [ebp - 0x18], eax
inc edi
test byte [ebp - 0x18], 1
setne dl
and edx, 1
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ecx + 0x614d40]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x18]
movsx ecx, byte [edx + 0x614d46]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0
jne 0x51a2f9
mov dword [ebp - 0xc], closesocket
mov eax, dword [ebx + 0x2c]
sub eax, esi
cmp eax, dword [ebp - 8]
jge 0x51a30a
xor eax, eax
jmp 0x51ae20
xor edx, edx
mov dl, byte [edi]
mov dword [ebp - 0x18], edx
inc edi
test byte [ebp + 0x18], 1
je 0x51a440
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg 0x51a35f
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x10]
xor eax, eax
inc esi
mov al, byte [ecx + edx]
cmp eax, dword [ebp - 0x18]
je 0x51a354
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a339
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x51a3cb
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a39e
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x51a3bf
cmp esi, dword [ebx + 0x2c]
jae 0x51a3bf
mov cl, byte [esi]
xor eax, eax
mov al, cl
mov edx, dword [ebx + 0x10]
xor ecx, ecx
inc esi
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x18]
je 0x51a3c6
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
jmp 0x51a377
mov dword [ebp - 0x64], esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge 0x51a3fe
cmp esi, dword [ebx + 0x2c]
jae 0x51a3fe
xor eax, eax
mov al, byte [esi]
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x18]
jne 0x51a3fe
inc esi
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x51a3dc
cmp esi, dword [ebp - 0x64]
jb 0x51a434
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
mov edx, esi
push ecx
push ebx
mov eax, dword [ebp + 0x10]
add esi, 0xffffffff
push eax
push edi
push edx
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a42f
mov eax, 1
jmp 0x51ae20
cmp esi, dword [ebp - 0x64]
jae 0x51a403
xor eax, eax
jmp 0x51ae20
mov dword [ebp - 0x14], 1
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jg 0x51a46d
mov cl, byte [esi]
xor eax, eax
mov al, cl
inc esi
cmp eax, dword [ebp - 0x18]
je 0x51a462
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a44f
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x51a4d1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a4ac
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x51a4c5
cmp esi, dword [ebx + 0x2c]
jae 0x51a4c5
mov cl, byte [esi]
xor eax, eax
mov al, cl
inc esi
cmp eax, dword [ebp - 0x18]
je 0x51a4cc
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
jmp 0x51a485
mov dword [ebp - 0x68], esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge 0x51a4fc
cmp esi, dword [ebx + 0x2c]
jae 0x51a4fc
xor eax, eax
mov al, byte [esi]
cmp eax, dword [ebp - 0x18]
jne 0x51a4fc
inc esi
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jl 0x51a4e2
cmp esi, dword [ebp - 0x68]
jb 0x51a532
mov ecx, dword [ebp + 0x20]
push ecx
push 0
mov eax, dword [ebp + 0x18]
mov ecx, esi
push eax
push ebx
mov edx, dword [ebp + 0x10]
add esi, 0xffffffff
push edx
push edi
push ecx
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a52d
mov eax, 1
jmp 0x51ae20
cmp esi, dword [ebp - 0x68]
jae 0x51a501
xor eax, eax
jmp 0x51ae20
cmp esi, dword [ebx + 0x2c]
jb 0x51a545
xor eax, eax
jmp 0x51ae20
inc edi
test byte [ebp + 0x18], 1
je 0x51a573
mov dl, byte [edi]
inc edi
xor ecx, ecx
mov cl, dl
mov eax, dword [ebx + 0x10]
mov dl, byte [eax + ecx]
mov cl, byte [esi]
inc esi
xor eax, eax
mov al, cl
mov ecx, dword [ebx + 0x10]
cmp dl, byte [ecx + eax]
jne 0x519438
xor eax, eax
jmp 0x51ae20
mov dl, byte [edi]
inc edi
mov cl, byte [esi]
inc esi
cmp dl, cl
jne 0x519438
xor eax, eax
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, 3
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edx
jmp 0x51a609
xor eax, eax
xor ecx, ecx
mov dword [ebp - 8], eax
xor eax, eax
mov cl, byte [edi + 1]
mov al, byte [edi + 2]
shl ecx, 8
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp byte [edi], 0x22
sete dl
and edx, 1
add edi, 3
mov dword [ebp - 0x1c], edx
jmp 0x51a609
xor ecx, ecx
mov cl, byte [edi]
add ecx, 0xffffffe5
mov dword [ebp - 0x18], ecx
inc edi
test byte [ebp - 0x18], 1
setne al
and eax, 1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x18]
movsx ecx, byte [edx + 0x614d40]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x18]
movsx edx, byte [eax + 0x614d46]
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
jne 0x51a609
mov dword [ebp - 0xc], closesocket
mov ecx, dword [ebx + 0x2c]
sub ecx, esi
cmp ecx, dword [ebp - 8]
jge 0x51a61a
xor eax, eax
jmp 0x51ae20
xor edx, edx
mov dl, byte [edi]
mov dword [ebp - 0x18], edx
inc edi
test byte [ebp + 0x18], 1
je 0x51a750
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg 0x51a66f
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x10]
xor eax, eax
inc esi
mov al, byte [ecx + edx]
cmp eax, dword [ebp - 0x18]
jne 0x51a664
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a649
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x51a6db
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a6ae
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x51a6cf
cmp esi, dword [ebx + 0x2c]
jae 0x51a6cf
mov cl, byte [esi]
xor eax, eax
mov al, cl
mov edx, dword [ebx + 0x10]
xor ecx, ecx
inc esi
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x18]
jne 0x51a6d6
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
jmp 0x51a687
mov dword [ebp - 0x6c], esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge 0x51a70e
cmp esi, dword [ebx + 0x2c]
jae 0x51a70e
xor eax, eax
mov al, byte [esi]
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov cl, byte [edx + eax]
cmp ecx, dword [ebp - 0x18]
je 0x51a70e
inc esi
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x51a6ec
cmp esi, dword [ebp - 0x6c]
jb 0x51a744
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
mov edx, esi
push ecx
push ebx
mov eax, dword [ebp + 0x10]
add esi, 0xffffffff
push eax
push edi
push edx
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a73f
mov eax, 1
jmp 0x51ae20
cmp esi, dword [ebp - 0x6c]
jae 0x51a713
xor eax, eax
jmp 0x51ae20
mov dword [ebp - 0x14], 1
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jg 0x51a77d
mov cl, byte [esi]
xor eax, eax
mov al, cl
inc esi
cmp eax, dword [ebp - 0x18]
jne 0x51a772
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a75f
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x51a7e1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a7bc
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x51a7d5
cmp esi, dword [ebx + 0x2c]
jae 0x51a7d5
mov cl, byte [esi]
xor eax, eax
mov al, cl
inc esi
cmp eax, dword [ebp - 0x18]
jne 0x51a7dc
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
jmp 0x51a795
mov dword [ebp - 0x70], esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge 0x51a80c
cmp esi, dword [ebx + 0x2c]
jae 0x51a80c
xor eax, eax
mov al, byte [esi]
cmp eax, dword [ebp - 0x18]
je 0x51a80c
inc esi
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jl 0x51a7f2
cmp esi, dword [ebp - 0x70]
jb 0x51a842
mov ecx, dword [ebp + 0x20]
push ecx
push 0
mov eax, dword [ebp + 0x18]
mov ecx, esi
push eax
push ebx
mov edx, dword [ebp + 0x10]
add esi, 0xffffffff
push edx
push edi
push ecx
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51a83d
mov eax, 1
jmp 0x51ae20
cmp esi, dword [ebp - 0x70]
jae 0x51a811
xor eax, eax
jmp 0x51ae20
xor edx, edx
xor ecx, ecx
mov dl, byte [edi + 1]
mov cl, byte [edi + 2]
shl edx, 8
add edx, ecx
add edi, 3
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0x1c], 1
jmp 0x51a8d1
xor eax, eax
xor ecx, ecx
mov dword [ebp - 8], eax
xor eax, eax
mov cl, byte [edi + 1]
mov al, byte [edi + 2]
shl ecx, 8
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp byte [edi], 0x2b
sete dl
and edx, 1
add edi, 3
mov dword [ebp - 0x1c], edx
jmp 0x51a8d1
xor ecx, ecx
mov cl, byte [edi]
add ecx, 0xffffffdc
mov dword [ebp - 0x18], ecx
inc edi
test byte [ebp - 0x18], 1
setne al
and eax, 1
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x18]
movsx ecx, byte [edx + 0x614d40]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x18]
movsx edx, byte [eax + 0x614d46]
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
jne 0x51a8d1
mov dword [ebp - 0xc], closesocket
xor ecx, ecx
mov cl, byte [edi]
mov dword [ebp - 0x10], ecx
inc edi
mov eax, dword [ebx + 0x2c]
sub eax, esi
cmp eax, dword [ebp - 8]
jge 0x51a8ea
xor eax, eax
jmp 0x51ae20
cmp dword [ebp - 8], 0
jle case.0x51a903.10
mov edx, dword [ebp - 0x10]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x51a903.10
jmp dword [edx*4 + 0x51a90a]
test byte [ebp + 0x18], 4
jne 0x51a971
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
inc esi
cmp al, 0xa
jne 0x51a961
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a953
jmp case.0x51a903.10
add esi, dword [ebp - 8]
jmp case.0x51a903.10
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc esi
test byte [ecx + edx], 4
je 0x51a9a3
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a98c
jmp case.0x51a903.10
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc esi
test byte [ecx + edx], 4
jne 0x51a9dd
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51a9c6
jmp case.0x51a903.10
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc esi
test byte [ecx + edx], 1
je 0x51aa17
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51aa00
jmp case.0x51a903.10
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc esi
test byte [ecx + edx], 1
jne 0x51aa51
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51aa3a
jmp case.0x51a903.10
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc esi
test byte [ecx + edx], 0x10
je 0x51aa84
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51aa6d
jmp case.0x51a903.10
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jg case.0x51a903.10
mov al, byte [esi]
xor edx, edx
mov dl, al
mov ecx, dword [ebx + 0x14]
inc esi
test byte [ecx + edx], 0x10
jne 0x51aab7
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jle 0x51aaa0
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
je 0x519438
cmp dword [ebp - 0x1c], 0
je 0x51abf4
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
mov eax, dword [ebp + 0x10]
push eax
push edi
push esi
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51ab05
mov eax, 1
jmp 0x51ae20
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge 0x51ab12
cmp esi, dword [ebx + 0x2c]
jb 0x51ab19
xor eax, eax
jmp 0x51ae20
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x18], edx
inc esi
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffffc
cmp ecx, 0xb
ja case.0x51ab30.10
jmp dword [ecx*4 + 0x51ab37]
test byte [ebp + 0x18], 4
jne case.0x51ab30.10
cmp dword [ebp - 0x18], 0xa
jne case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x18]
test byte [edx + ecx], 4
je case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x18]
test byte [edx + ecx], 4
jne case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x18]
test byte [edx + ecx], 1
je case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x18]
test byte [edx + ecx], 1
jne case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x18]
test byte [edx + ecx], 0x10
je case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x18]
test byte [edx + ecx], 0x10
jne case.0x51ab30.10
xor eax, eax
jmp 0x51ae20
inc dword [ebp - 0x14]
jmp 0x51aade
mov dword [ebp - 0x74], esi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffffc
cmp edx, 0xb
ja case.0x51ac06.10
jmp dword [edx*4 + 0x51ac0d]
test byte [ebp + 0x18], 4
jne 0x51ac78
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
cmp byte [esi], 0xa
je case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jl 0x51ac55
jmp case.0x51ac06.10
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 8]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebx + 0x2c]
sub eax, esi
cmp eax, dword [ebp - 0x18]
jge 0x51ac93
mov edx, dword [ebx + 0x2c]
sub edx, esi
mov dword [ebp - 0x18], edx
add esi, dword [ebp - 0x18]
jmp case.0x51ac06.10
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
xor edx, edx
mov dl, byte [esi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 4
jne case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x51acad
jmp case.0x51ac06.10
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
xor eax, eax
mov al, byte [esi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 4
je case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jl 0x51acea
jmp case.0x51ac06.10
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
xor ecx, ecx
mov cl, byte [esi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 1
jne case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jl 0x51ad27
jmp case.0x51ac06.10
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
xor edx, edx
mov dl, byte [esi]
mov ecx, dword [ebx + 0x14]
test byte [ecx + edx], 1
je case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x51ad60
jmp case.0x51ac06.10
mov edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
xor eax, eax
mov al, byte [esi]
mov edx, dword [ebx + 0x14]
test byte [edx + eax], 0x10
jne case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0xc]
jl 0x51ad8e
jmp case.0x51ac06.10
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jge case.0x51ac06.10
cmp esi, dword [ebx + 0x2c]
jae case.0x51ac06.10
xor ecx, ecx
mov cl, byte [esi]
mov eax, dword [ebx + 0x14]
test byte [eax + ecx], 0x10
je case.0x51ac06.10
inc esi
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0xc]
jl 0x51adbc
cmp esi, dword [ebp - 0x74]
jb 0x51ae0d
mov ecx, dword [ebp + 0x20]
push ecx
push 0
mov eax, dword [ebp + 0x18]
mov ecx, esi
push eax
push ebx
mov edx, dword [ebp + 0x10]
add esi, 0xffffffff
push edx
push edi
push ecx
call fcn.00519420
add esp, 0x1c
test eax, eax
je 0x51ae08
mov eax, 1
jmp 0x51ae20
cmp esi, dword [ebp - 0x74]
jae 0x51addf
xor eax, eax
jmp 0x51ae20
mov dword [ebx], 0xfffffffb
xor eax, eax
jmp 0x51ae20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret