Function at 0x499550
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x502a20]
sub esp, 0x114
mov byte [0x502a30], 0
mov dword [0x502a2c], 0
test eax, eax
jne 0x499590
mov dword [0x502b38], str.NULL_input_line
mov dword [0x502a24], 0xff
mov esp, ebp
pop ebp
ret
mov cl, byte [eax]
cmp cl, 0x20
je 0x49959c
cmp cl, 9
jne 0x49959f
inc eax
jmp 0x499590
mov dword [0x502a20], eax
test cl, cl
je 0x49ac19
cmp cl, 0x3b
je 0x49ac19
push esi
movzx eax, cl
push edi
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
mov ecx, dword [0x502a20]
add esp, 4
test eax, eax
jne 0x499e47
mov al, byte [ecx]
cmp al, 0x5f
je 0x499e47
cmp al, 0x40
je 0x499e47
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
movzx eax, al
push eax
call edi
add esp, 4
test eax, eax
je 0x499998
mov edx, dword [0x502a20]
xor eax, eax
push ebx
xor ebx, ebx
mov dword [ebp - 4], 0
xor esi, esi
mov dword [ebp - 8], eax
cmp byte [edx], 0x30
xorps xmm1, xmm1
movsd qword [ebp - 0x14], xmm1
jne 0x499648
movzx eax, byte [edx + 1]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
mov edx, dword [0x502a20]
add esp, 4
cmp eax, 0x58
jne 0x499648
mov dword [ebp - 4], 0x10
add edx, 2
mov dword [0x502a20], edx
movzx eax, byte [edx]
push eax
call edi
add esp, 4
test eax, eax
je 0x4996a8
mov edx, dword [0x502a20]
add esi, 0xfffffffd
movsd xmm1, qword [ebp - 0x14]
mov eax, dword [ebp - 8]
mulsd xmm1, qword [0x4a84c8]
movzx ecx, byte [edx]
shl esi, 4
lea eax, [eax + eax*4]
add esi, ecx
add eax, 0xffffffe8
test ebx, ebx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
lea eax, [ecx + eax*2]
mov dword [ebp - 8], eax
mov eax, 9
cmove ebx, eax
inc edx
addsd xmm1, xmm0
subsd xmm1, qword [0x4d3f28]
movsd qword [ebp - 0x14], xmm1
jmp 0x499642
mov eax, dword [0x502a20]
movzx eax, byte [eax]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4996ee
mov eax, dword [0x502a20]
movzx ecx, byte [eax]
inc eax
push ecx
mov dword [0x502a20], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
mov edx, dword [0x502a20]
add esp, 4
shl esi, 4
mov ebx, 0xf
add esi, 0xffffffc9
add esi, eax
jmp 0x499648
test ebx, ebx
jne 0x49970d
mov dword [0x502b38], str.Hexadecimal_digits_after_0x..._expected
mov dword [0x502a24], 0xff
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x502a20]
movzx eax, byte [eax]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
add esp, 4
cmp eax, 0x48
jne 0x499778
cmp dword [ebp - 4], 0x10
jne 0x499745
pop ebx
pop edi
mov dword [0x502b38], 0x4d3a0c
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x502a20]
inc eax
mov dword [0x502a2c], esi
mov dword [0x502a24], 0x1a
mov ecx, eax
mov dword [0x502a20], eax
mov edx, eax
mov al, byte [eax]
cmp al, 0x20
je 0x499770
cmp al, 9
jne 0x499706
cmp al, 0x20
cmove ecx, edx
lea eax, [ecx + 1]
jmp 0x49975b
mov eax, dword [0x502a20]
cmp byte [eax], 0x2e
jne 0x49996a
cmp dword [ebp - 4], 0x10
je 0x49994f
cmp ebx, 9
jg 0x49994f
inc eax
mov dword [0x502a20], eax
movzx eax, byte [eax]
push eax
call edi
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
add esp, 4
test eax, eax
jne 0x4997f8
mov eax, dword [0x502a20]
movzx eax, byte [eax]
push eax
call ebx
add esp, 4
cmp eax, 0x45
je 0x4997f8
mov eax, dword [ebp - 8]
mov dword [0x502a2c], eax
mov eax, dword [0x502a20]
mov dword [0x502a24], 0x1b
nop dword [eax]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4997f0
cmp cl, 9
jne 0x499706
inc eax
mov dword [0x502a20], eax
jmp 0x4997e0
mov eax, dword [0x502a20]
movsd xmm0, qword [0x4a0958]
movsd qword [ebp - 0xc], xmm0
movzx eax, byte [eax]
push eax
call edi
add esp, 4
test eax, eax
je 0x499868
nop word [eax + eax]
movsd xmm1, qword [ebp - 0xc]
divsd xmm1, qword [0x4a84c8]
mov ecx, dword [0x502a20]
movzx eax, byte [ecx]
inc ecx
sub eax, 0x30
mov dword [0x502a20], ecx
movd xmm0, eax
movzx eax, byte [ecx]
cvtdq2pd xmm0, xmm0
push eax
movsd qword [ebp - 0xc], xmm1
mulsd xmm0, xmm1
addsd xmm0, qword [ebp - 0x14]
movsd qword [ebp - 0x14], xmm0
call edi
add esp, 4
test eax, eax
jne 0x499820
mov eax, dword [0x502a20]
movzx eax, byte [eax]
push eax
call ebx
add esp, 4
cmp eax, 0x45
jne 0x499931
mov eax, dword [0x502a20]
inc eax
mov dword [0x502a20], eax
cmp byte [eax], 0x2d
jne 0x49989a
or ebx, 0xffffffff
inc eax
mov dword [0x502a20], eax
jmp 0x49989f
mov ebx, 1
movzx eax, byte [eax]
push eax
call edi
add esp, 4
test eax, eax
jne 0x4998c7
pop ebx
pop edi
mov dword [0x502b38], 0x4d3a4c
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x502a20]
xor esi, esi
movzx eax, byte [eax]
push eax
call edi
add esp, 4
test eax, eax
je 0x49990e
nop dword [eax + eax]
mov edx, dword [0x502a20]
cmp esi, 0x10000
jge 0x499901
movzx eax, byte [edx]
lea esi, [esi + esi*4]
lea esi, [esi - 0x18]
inc edx
mov dword [0x502a20], edx
lea esi, [eax + esi*2]
movzx eax, byte [edx]
push eax
call edi
add esp, 4
test eax, eax
jne 0x4998e0
movsd xmm0, qword [0x4a84c8]
imul esi, ebx
movd xmm1, esi
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
movsd xmm1, qword [ebp - 0x14]
mulsd xmm1, xmm0
jmp 0x499936
movsd xmm1, qword [ebp - 0x14]
pop ebx
pop edi
movsd qword [0x502b30], xmm1
mov dword [0x502a24], 0x1d
pop esi
mov esp, ebp
pop ebp
ret
pop ebx
pop edi
mov dword [0x502b38], 0x4d3a34
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov dword [0x502a2c], esi
mov dword [0x502a24], 0x1a
nop word [eax + eax]
mov cl, byte [eax]
cmp cl, 0x20
je 0x499990
cmp cl, 9
jne 0x499706
inc eax
mov dword [0x502a20], eax
jmp 0x499980
mov esi, dword [0x502a20]
mov al, byte [esi]
cmp al, 0x27
jne 0x499a48
mov cl, byte [esi + 1]
lea eax, [esi + 1]
mov dword [0x502a20], eax
test cl, cl
je 0x499a2e
cmp cl, 0x5c
jne 0x4999c9
cmp byte [eax + 1], 0
je 0x499a2e
lea ecx, [eax + 1]
mov eax, ecx
jmp 0x4999ea
cmp cl, 0x27
jne 0x4999e8
pop edi
mov dword [0x502b38], 0x4d3a80
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, eax
cmp byte [ecx + 1], 0x27
movzx eax, byte [eax]
mov dword [0x502a2c], eax
lea eax, [ecx + 1]
mov dword [0x502a20], eax
jne 0x499a2e
inc eax
mov ecx, eax
mov dword [0x502a20], eax
mov edx, eax
mov al, byte [eax]
cmp al, 0x20
je 0x499a16
cmp al, 9
jne 0x499a1e
cmp al, 0x20
cmove ecx, edx
lea eax, [ecx + 1]
jmp 0x499a01
pop edi
mov dword [0x502a24], 0x1a
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502b38], 0x4d3a60
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov byte [0x502a30], al
inc esi
movzx eax, al
mov dword [0x502a2c], eax
mov dword [0x502a20], esi
mov word [0x502a31], 0
cmp eax, 0x7c
jne 0x499aa2
mov cl, byte [esi]
cmp cl, al
jne 0x499adf
lea eax, [esi + 1]
mov dword [0x502a2c], 0x7c7c
mov dword [0x502a20], eax
mov eax, 0xa
pop edi
mov byte [0x502a31], cl
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x26
jne 0x499adf
mov cl, byte [esi]
cmp cl, al
jne 0x499b1b
lea eax, [esi + 1]
mov dword [0x502a2c], 0x2626
mov dword [0x502a20], eax
mov eax, 9
pop edi
mov byte [0x502a31], cl
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3d
jne 0x499b1b
mov cl, byte [esi]
cmp cl, al
jne 0x499b1b
inc esi
mov dword [0x502a2c], 0x3d3d
mov eax, 5
mov dword [0x502a20], esi
pop edi
mov byte [0x502a31], cl
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x21
jne 0x499b5a
mov al, byte [esi]
cmp al, 0x3d
jne 0x499e30
inc esi
mov byte [0x502a31], al
mov eax, 5
mov dword [0x502a20], esi
pop edi
mov dword [0x502a2c], 0x213d
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3c
jne 0x499b95
mov al, byte [esi]
cmp al, 0x3d
jne 0x499bd6
inc esi
mov byte [0x502a31], al
mov eax, 4
mov dword [0x502a20], esi
pop edi
mov dword [0x502a2c], 0x3c3d
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3e
jne 0x499bd1
cmp byte [esi], 0x3d
jne 0x499c16
inc esi
mov dword [0x502a2c], 0x3e3d
mov byte [0x502a31], 0x3d
mov dword [0x502a20], esi
mov eax, 4
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3c
jne 0x499c11
cmp byte [esi], 0x3c
jne 0x499cb3
inc esi
mov dword [0x502a2c], 0x3c3c
mov eax, 3
mov dword [0x502a20], esi
pop edi
mov byte [0x502a31], 0x3c
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3e
jne 0x499c4d
cmp byte [esi], 0x3e
jne 0x499bb7
inc esi
mov dword [0x502a2c], 0x3e3e
mov eax, 3
mov dword [0x502a20], esi
pop edi
mov byte [0x502a31], 0x3e
mov dword [0x502a28], eax
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x7c
jne 0x499c6c
mov eax, 8
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x5e
jne 0x499c8b
mov eax, 7
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x26
jne 0x499caa
mov eax, 6
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3c
jne 0x499d6c
cmp byte [esi], 0x26
jne 0x499bb7
test byte [ebp + 8], 2
jne 0x499cdc
pop edi
mov dword [0x502b38], 0x4d3470
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov cl, byte [esi + 1]
lea eax, [esi + 1]
xor edx, edx
mov dword [0x502a20], eax
test cl, cl
je 0x499d30
mov esi, eax
nop
cmp cl, 0x3e
je 0x499d4f
mov byte [edx + 0x502a30], cl
lea eax, [esi + 1]
inc edx
mov dword [0x502a20], eax
cmp edx, 0x100
jae 0x499d16
mov cl, byte [eax]
mov esi, eax
test cl, cl
jne 0x499cf0
jmp 0x499d35
pop edi
mov dword [0x502b38], 0x4d3a9c
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
cmp cl, 0x3e
je 0x499d4f
pop edi
mov dword [0x502b38], 0x4d3ab4
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
inc eax
mov byte [edx + 0x502a30], 0
pop edi
mov dword [0x502a20], eax
mov dword [0x502a24], 0x41
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x3e
je 0x499bb7
cmp eax, 0x2b
je 0x499d7f
cmp eax, 0x2d
jne 0x499d99
mov eax, 2
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x2a
je 0x499da8
cmp eax, 0x2f
je 0x499da8
cmp eax, 0x25
jne 0x499dc2
mov eax, 1
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x5d
jne 0x499e30
push 1
call fcn.00499550
add esp, 4
cmp dword [0x502a24], 0x40
jne 0x499e08
cmp dword [0x502a2c], 0x5b
jne 0x499e08
mov eax, 2
mov dword [0x502a24], 0x40
mov ecx, 0x2b
mov dword [0x502a28], eax
pop edi
mov dword [0x502a2c], ecx
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [0x502a20], esi
mov ecx, 0x5d
mov dword [0x502a28], eax
pop edi
mov dword [0x502a2c], ecx
mov dword [0x502a24], 0x40
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [0x502a24], 0x40
pop edi
mov dword [0x502a28], eax
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [ecx]
mov edi, 1
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalnum]
mov byte [0x502a30], al
movzx eax, byte [ecx + 1]
inc ecx
push eax
mov dword [0x502a20], ecx
call esi
mov ecx, dword [0x502a20]
add esp, 4
test eax, eax
jne 0x499e7e
mov al, byte [ecx]
cmp al, 0x5f
je 0x499e7e
cmp al, 0x40
jne 0x499e95
cmp edi, 0x100
jae 0x49abff
mov al, byte [ecx]
mov byte [edi + 0x502a30], al
inc edi
jmp 0x499e59
cmp edi, 0x100
jae 0x49abff
mov byte [edi + 0x502a30], 0
mov al, byte [ecx]
cmp al, 0x20
je 0x499eb2
cmp al, 9
jne 0x499eb5
inc ecx
jmp 0x499ea8
mov dword [0x502a20], ecx
xor ecx, ecx
nop dword [eax]
mov al, byte [ecx + 0x502a30]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x499ec0
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strupr]
add esp, 4
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4fe9d8]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x499f20
test dl, dl
je 0x499f1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x499f20
add eax, 2
add ecx, 2
test dl, dl
jne 0x499f00
xor eax, eax
jmp 0x499f25
sbb eax, eax
or eax, 1
test eax, eax
je 0x49abe9
inc esi
cmp esi, 8
jle 0x499ef0
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4fe9fc]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x499f70
test dl, dl
je 0x499f6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x499f70
add eax, 2
add ecx, 2
test dl, dl
jne 0x499f50
xor eax, eax
jmp 0x499f75
sbb eax, eax
or eax, 1
test eax, eax
je 0x49abd3
inc esi
cmp esi, 8
jle 0x499f40
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4fea20]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x499fc0
test dl, dl
je 0x499fbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x499fc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x499fa0
xor eax, eax
jmp 0x499fc5
sbb eax, eax
or eax, 1
test eax, eax
je 0x49abbd
inc esi
cmp esi, 8
jle 0x499f90
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4fea44]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a010
test dl, dl
je 0x49a00c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a010
add eax, 2
add ecx, 2
test dl, dl
jne 0x499ff0
xor eax, eax
jmp 0x49a015
sbb eax, eax
or eax, 1
test eax, eax
je 0x49ab90
inc esi
cmp esi, 6
jl 0x499fe0
mov ecx, 0x4d38d0
lea eax, [ebp - 0x114]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a050
test dl, dl
je 0x49a04c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a050
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a030
xor eax, eax
jmp 0x49a055
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a11b
mov esi, dword [0x502a20]
push 1
call fcn.00499550
add esp, 4
cmp dword [0x502a24], 0x40
jne 0x49a0fb
cmp dword [0x502a2c], 0x28
jne 0x49a0fb
push 1
call fcn.00499550
mov eax, dword [0x502a24]
add esp, 4
mov esi, dword [0x502a2c]
cmp eax, 0x1a
je 0x49a0a2
cmp eax, 0x1b
jne 0x49a0e1
cmp esi, 7
ja 0x49a0e1
push 1
call fcn.00499550
add esp, 4
cmp dword [0x502a24], 0x40
jne 0x49a0c7
cmp dword [0x502a2c], 0x29
je 0x49ab7a
pop edi
mov dword [0x502b38], 0x4d38f8
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502b38], 0x4d38d4
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a20], esi
mov dword [0x502a2c], 0
mov dword [0x502a24], 5
pop esi
mov esp, ebp
pop ebp
ret
xor esi, esi
nop dword [eax]
mov ecx, dword [esi*4 + 0x4fea90]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a150
test dl, dl
je 0x49a14c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a150
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a130
xor eax, eax
jmp 0x49a155
sbb eax, eax
or eax, 1
test eax, eax
je 0x49ab7a
inc esi
cmp esi, 8
jle 0x49a120
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4feab4]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a1a0
test dl, dl
je 0x49a19c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a1a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a180
xor eax, eax
jmp 0x49a1a5
sbb eax, eax
or eax, 1
test eax, eax
je 0x49ab64
inc esi
cmp esi, 8
jle 0x49a170
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4fead8]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a1f0
test dl, dl
je 0x49a1ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a1f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a1d0
xor eax, eax
jmp 0x49a1f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x49ab4e
inc esi
cmp esi, 8
jle 0x49a1c0
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4feafc]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a240
test dl, dl
je 0x49a23c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a240
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a220
xor eax, eax
jmp 0x49a245
sbb eax, eax
or eax, 1
test eax, eax
je 0x49ab38
inc esi
cmp esi, 8
jle 0x49a210
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4fea64]
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a290
test dl, dl
je 0x49a28c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a290
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a270
xor eax, eax
jmp 0x49a295
sbb eax, eax
or eax, 1
test eax, eax
je 0x49ab03
inc esi
cmp esi, 0xb
jb 0x49a260
mov ecx, 0x4d3918
lea eax, [ebp - 0x114]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a2d0
test dl, dl
je 0x49a2cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a2d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a2b0
xor eax, eax
jmp 0x49a2d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a2ee
pop edi
mov dword [0x502a24], 0x1e
mov dword [0x502a2c], eax
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.SHORT
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a320
test dl, dl
je 0x49a31c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a320
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a300
xor eax, eax
jmp 0x49a325
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a343
pop edi
mov dword [0x502a24], 0xa
mov dword [0x502a2c], 1
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.LONG
lea eax, [ebp - 0x114]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a370
test dl, dl
je 0x49a36c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a370
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a350
xor eax, eax
jmp 0x49a375
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a393
pop edi
mov dword [0x502a24], 0xa
mov dword [0x502a2c], 2
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.NEAR
lea eax, [ebp - 0x114]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a3c0
test dl, dl
je 0x49a3bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a3c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a3a0
xor eax, eax
jmp 0x49a3c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a3e3
pop edi
mov dword [0x502a24], 0xa
mov dword [0x502a2c], 4
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4d3934
lea eax, [ebp - 0x114]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a410
test dl, dl
je 0x49a40c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a410
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a3f0
xor eax, eax
jmp 0x49a415
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a433
pop edi
mov dword [0x502a24], 0xa
mov dword [0x502a2c], 8
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.LOCAL
lea eax, [ebp - 0x114]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a460
test dl, dl
je 0x49a45c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a460
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a440
xor eax, eax
jmp 0x49a465
sbb eax, eax
or eax, 1
mov esi, dword [0x502a20]
test eax, eax
jne 0x49a510
cmp byte [esi], 0x2e
jne 0x49a510
lea eax, [esi + 1]
mov ecx, eax
mov dword [0x502a20], eax
mov edx, eax
mov al, byte [eax]
cmp al, 0x20
je 0x49a494
cmp al, 9
jne 0x49a49c
cmp al, 0x20
cmove ecx, edx
lea eax, [ecx + 1]
jmp 0x49a47f
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
movzx eax, al
push eax
call esi
add esp, 4
test eax, eax
je 0x49a589
mov eax, dword [0x502a20]
movzx eax, byte [eax]
push eax
call esi
add esp, 4
test eax, eax
je 0x49a500
nop word [eax + eax]
mov eax, dword [0x502a2c]
mov edx, dword [0x502a20]
lea ecx, [eax + eax*4]
movzx eax, byte [edx]
inc edx
mov dword [0x502a20], edx
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
mov dword [0x502a2c], eax
movzx eax, byte [edx]
push eax
call esi
add esp, 4
test eax, eax
jne 0x49a4d0
pop edi
mov dword [0x502a24], 0xb
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4d3958
lea eax, [ebp - 0x114]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a540
test dl, dl
je 0x49a53c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a540
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a520
xor eax, eax
jmp 0x49a545
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a600
cmp byte [esi], 0x2e
jne 0x49a600
lea eax, [esi + 1]
mov ecx, eax
mov dword [0x502a20], eax
mov edx, eax
mov al, byte [eax]
cmp al, 0x20
je 0x49a56e
cmp al, 9
jne 0x49a576
cmp al, 0x20
cmove ecx, edx
lea eax, [ecx + 1]
jmp 0x49a559
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
movzx eax, al
push eax
call esi
add esp, 4
test eax, eax
jne 0x49a5a3
pop edi
mov dword [0x502b38], 0x4d3940
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x502a20]
movzx eax, byte [eax]
push eax
call esi
add esp, 4
test eax, eax
je 0x49a5f0
nop word [eax + eax]
mov eax, dword [0x502a2c]
mov edx, dword [0x502a20]
lea ecx, [eax + eax*4]
movzx eax, byte [edx]
inc edx
mov dword [0x502a20], edx
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
mov dword [0x502a2c], eax
movzx eax, byte [edx]
push eax
call esi
add esp, 4
test eax, eax
jne 0x49a5c0
pop edi
mov dword [0x502a24], 0xc
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4d395c
lea eax, [ebp - 0x114]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a630
test dl, dl
je 0x49a62c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a630
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a610
xor eax, eax
jmp 0x49a635
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a649
pop edi
mov dword [0x502a24], 0x15
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.REPE
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a674
test dl, dl
je 0x49a670
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a674
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a654
xor eax, eax
jmp 0x49a679
sbb eax, eax
or eax, 1
test eax, eax
je 0x49aaf3
mov ecx, str.REPZ
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a6b0
test dl, dl
je 0x49a6ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a6b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a690
xor eax, eax
jmp 0x49a6b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x49aaf3
mov ecx, str.REPNE
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a6e8
test dl, dl
je 0x49a6e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a6e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a6c8
xor eax, eax
jmp 0x49a6ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x49aae3
mov ecx, str.REPNZ
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a720
test dl, dl
je 0x49a71c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a720
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a700
xor eax, eax
jmp 0x49a725
sbb eax, eax
or eax, 1
test eax, eax
je 0x49aae3
mov ecx, str.LOCK
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a758
test dl, dl
je 0x49a754
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a758
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a738
xor eax, eax
jmp 0x49a75d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a771
pop edi
mov dword [0x502a24], 0x18
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4d3988
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a7a0
test dl, dl
je 0x49a79c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a7a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a780
xor eax, eax
jmp 0x49a7a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a7b9
pop edi
mov dword [0x502a24], 0x14
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.CONST
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a7e4
test dl, dl
je 0x49a7e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a7e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a7c4
xor eax, eax
jmp 0x49a7e9
sbb eax, eax
or eax, 1
test eax, eax
je 0x49aad3
mov ecx, str.OFFSET
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a820
test dl, dl
je 0x49a81c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a820
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a800
xor eax, eax
jmp 0x49a825
sbb eax, eax
or eax, 1
test eax, eax
je 0x49aad3
mov ecx, str.SIGNED
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a858
test dl, dl
je 0x49a854
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a858
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a838
xor eax, eax
jmp 0x49a85d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a871
pop edi
mov dword [0x502a24], 0x1f
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.UNSIGNED
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a8a0
test dl, dl
je 0x49a89c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a8a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a880
xor eax, eax
jmp 0x49a8a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a8b9
pop edi
mov dword [0x502a24], 0x20
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.CHAR
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a8e4
test dl, dl
je 0x49a8e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a8e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a8c4
xor eax, eax
jmp 0x49a8e9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a8fd
pop edi
mov dword [0x502a24], 0x21
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.FLOAT
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a928
test dl, dl
je 0x49a924
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a928
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a908
xor eax, eax
jmp 0x49a92d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a941
pop edi
mov dword [0x502a24], 0x22
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.DOUBLE
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a970
test dl, dl
je 0x49a96c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a970
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a950
xor eax, eax
jmp 0x49a975
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a989
pop edi
mov dword [0x502a24], 0x23
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.FLOAT10
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a9b4
test dl, dl
je 0x49a9b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a9b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a994
xor eax, eax
jmp 0x49a9b9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49a9cd
pop edi
mov dword [0x502a24], 0x24
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.STRING
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49a9f8
test dl, dl
je 0x49a9f4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49a9f8
add eax, 2
add ecx, 2
test dl, dl
jne 0x49a9d8
xor eax, eax
jmp 0x49a9fd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49aa11
pop edi
mov dword [0x502a24], 0x25
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, str.UNICODE
lea eax, [ebp - 0x114]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49aa40
test dl, dl
je 0x49aa3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49aa40
add eax, 2
add ecx, 2
test dl, dl
jne 0x49aa20
xor eax, eax
jmp 0x49aa45
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49aa59
pop edi
mov dword [0x502a24], 0x26
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x4d39e0
lea eax, [ebp - 0x114]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49aa84
test dl, dl
je 0x49aa80
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49aa84
add eax, 2
add ecx, 2
test dl, dl
jne 0x49aa64
xor eax, eax
jmp 0x49aa89
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49aa9d
pop edi
mov dword [0x502a24], 0x27
pop esi
mov esp, ebp
pop ebp
ret
test byte [ebp + 8], 1
je 0x49aab9
mov dword [0x502a2c], edi
pop edi
mov dword [0x502a24], 0x19
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502b38], 0x4d318c
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a24], 0x1c
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a24], 0x17
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a24], 0x16
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [0x502a20]
push 1
call fcn.00499550
add esp, 4
cmp dword [0x502a24], 0x14
je 0x49ab22
mov dword [0x502a20], edi
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 9
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 8
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 7
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 6
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 5
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x502a20]
mov dword [0x502a2c], esi
mov dword [0x502a24], 4
mov cl, byte [eax]
cmp cl, 0x20
je 0x49abb5
cmp cl, 9
jne 0x499707
inc eax
mov dword [0x502a20], eax
jmp 0x49aba5
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 3
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 2
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502a2c], esi
mov dword [0x502a24], 1
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [0x502b38], 0x4d38bc
mov dword [0x502a24], 0xff
pop esi
mov esp, ebp
pop ebp
ret
mov dword [0x502a24], 0
mov esp, ebp
pop ebp
ret