Function at 0x4c9120
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
xor eax, eax
mov dword [esp + 0x18], ecx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x18], eax
or edx, 0xffffffff
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 8]
mov dword [esi + 4], eax
mov dword [esi + 0xc], ebx
mov eax, dword [ecx + 0xc]
push edi
xor edi, edi
mov dword [esp + 0x18], ebx
add eax, dword [ecx + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
nop dword [eax + eax]
movsx esi, byte [eax]
test esi, esi
jne 0x4c921f
sub eax, dword [ecx + 0xc]
mov dword [ecx + 8], eax
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x4c982d
mov edi, dword [ecx + 0xcc]
call fcn.004c8980
test al, al
je 0x4c91fe
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x1c]
mov esi, dword [eax + 8]
sub esi, ecx
mov eax, dword [edx + 0xcc]
test eax, eax
je 0x4c91db
mov edx, dword [ebp + 8]
sub ecx, eax
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4c926b
sub ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
sub dword [ecx + 8], eax
mov edx, dword [ecx + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x50]
add ecx, esi
cmp dword [eax + 0x14], 0x10
jb 0x4c91ee
mov eax, dword [eax]
mov esi, dword [esp + 0x20]
mov dword [esi + 0xc], eax
add eax, ecx
mov dword [esp + 0xc], eax
movsx esi, byte [eax]
mov ecx, dword [esp + 0x20]
test edi, edi
je 0x4c920f
mov eax, dword [ecx + 0x1c]
mov dword [eax + 0xcc], edi
mov edx, dword [esp + 0x14]
test esi, esi
je 0x4c9831
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4c92af
lea eax, [esi - 9]
cmp eax, 0x35
ja 0x4c928c
cmp byte [esi + 0x508477], 0
je 0x4c928c
mov edi, dword [esp + 0xc]
mov eax, edi
sub eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
dec eax
sub dword [esp + 0x28], edx
mov dword [ecx + 4], eax
xor eax, eax
mov dword [ecx], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
jmp 0x4c92b3
cmp dword [esp + 0x28], 0
je 0x4c91d1
mov ecx, dword [esp + 0x20]
sub dword [ecx], eax
sub dword [ecx + 4], eax
jmp 0x4c91d5
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
push esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbclen]
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x20]
add esi, eax
mov dword [esp + 0xc], esi
mov eax, esi
jmp 0x4c9170
mov edi, dword [esp + 0xc]
cmp dword [esp + 0x18], 0
je 0x4c9514
cmp esi, 0x3e
jne 0x4c939c
test bl, 0xc0
jne 0x4c93b3
mov esi, dword [esp + 0x20]
mov ecx, edi
sub ecx, dword [esi + 0xc]
lea eax, [ecx + 1]
mov dword [esi + 8], eax
mov esi, dword [esp + 0x1c]
cmp esi, 1
jne 0x4c9328
mov dword [esp + 0x18], 0
cmp edx, esi
jne 0x4c9359
cmp dword [esp + 0x24], 0x2f
jne 0x4c9359
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4c931c
test ebx, 0x200
je 0x4c931c
lea eax, [ecx - 9]
cmp eax, 0x1e
ja 0x4c9359
cmp byte [ecx + 0x5084af], 0
je 0x4c9359
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
jmp 0x4c9359
cmp ecx, esi
jle 0x4c9389
mov edx, edi
mov edi, dword [esp + 0x18]
sub edx, esi
inc edx
sub edi, edx
sub esi, 1
je 0x4c9351
mov cl, byte [edx]
mov al, byte [edi + edx]
inc edx
cmp cl, al
je 0x4c9337
and ebx, 0xfffffdff
jmp 0x4c9288
mov dword [esp + 0x18], 0
and ebx, 0xfffffdff
test bl, 0x20
jne 0x4c9288
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 8]
sub ecx, dword [eax + 4]
mov dword [eax + 8], ecx
mov dword [eax], edi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0x18]
and ebx, 0xfffffdff
mov dword [esp + 0x18], edi
jmp 0x4c9288
cmp esi, 0x3c
jne 0x4c93b3
cmp edx, 2
je 0x4c98da
cmp edx, 0xffffffff
je 0x4c98da
test dl, 1
je 0x4c94d9
test ebx, 0x2c0
je 0x4c943e
cmp esi, 0x22
jne 0x4c93e4
test bl, bl
jns 0x4c9402
mov eax, dword [esp + 0x24]
xor ebx, 0x80
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
cmp esi, 0x27
jne 0x4c9402
test bl, 0x40
je 0x4c9402
mov eax, dword [esp + 0x24]
xor ebx, 0x40
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
test ebx, 0x200
je 0x4c94c8
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x4c94c8
cmp byte [esi + 0x508223], 0
je 0x4c94c8
mov eax, dword [esp + 0x24]
xor ebx, 0x200
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
mov eax, ebx
and eax, 0x100
cmp esi, 0x22
jne 0x4c9465
test eax, eax
je 0x4c9465
mov eax, dword [esp + 0x24]
xor ebx, 0x180
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
cmp esi, 0x27
jne 0x4c9485
test eax, eax
je 0x4c94c8
mov eax, dword [esp + 0x24]
xor ebx, 0x140
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
cmp esi, 0x3d
jne 0x4c94ab
cmp dword [esp + 0x24], esi
je 0x4c94ab
test eax, eax
jne 0x4c94c2
mov eax, dword [esp + 0x24]
xor ebx, 0x100
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
test eax, eax
je 0x4c94c8
cmp esi, 9
jb 0x4c94c2
cmp esi, 0x20
ja 0x4c94c2
cmp byte [esi + 0x508223], 0
jne 0x4c94c8
xor ebx, 0x300
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jmp 0x4c9288
test dl, 0x40
je 0x4c9288
cmp esi, 0x22
jne 0x4c94fb
test bl, 0x40
jne 0x4c9288
xor ebx, 0x80
jmp 0x4c9288
cmp esi, 0x27
jne 0x4c9288
test bl, bl
js 0x4c9288
xor ebx, 0x40
jmp 0x4c9288
test ebx, ebx
je 0x4c97e4
test bl, 0x10
je 0x4c956b
cmp esi, 0x3c
je 0x4c98e9
lea eax, [esi - 9]
cmp eax, 0x17
ja 0x4c953f
movsx ecx, byte [esi + 0x508223]
test ecx, ecx
jne 0x4c955a
jmp 0x4c9541
xor ecx, ecx
mov edi, 2
mov dword [esp + 0x18], 0x5059c8
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], edi
mov eax, ebx
xor eax, 0x10
test ecx, ecx
cmovne eax, ebx
mov ebx, eax
jmp 0x4c9288
test bl, 1
je 0x4c9676
xor ebx, 1
cmp esi, 0x60
ja 0x4c964b
cmp esi, 0x40
jbe 0x4c958e
cmp esi, 0x5b
jb 0x4c964b
cmp esi, 0x5f
je 0x4c964b
cmp esi, 0x3a
je 0x4c964b
cmp esi, 0x2f
jne 0x4c95ce
mov esi, dword [esp + 0xc]
xor edi, edi
mov dword [esp + 0x14], edi
mov edi, esi
sub edi, dword [ecx + 0xc]
inc edi
mov dword [esp + 0x18], 0x5059c4
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], edi
jmp 0x4c9290
cmp esi, 0x21
jne 0x4c95db
or ebx, 2
jmp 0x4c9288
cmp esi, 0x3f
jne 0x4c960c
mov esi, dword [esp + 0xc]
mov edi, 0x10
mov dword [esp + 0x14], edi
mov edi, esi
sub edi, dword [ecx + 0xc]
inc edi
mov dword [esp + 0x18], 0x5084d8
mov dword [esp + 0x1c], 2
mov dword [esp + 0x10], edi
jmp 0x4c9290
push 0xffffffffffffffff
push dword [ecx + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.first_tag_syntax
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 0x5059c4
lea ecx, [ecx + 0x10]
call fcn.004c5860
add esp, 0x10
or edi, 0xffffffff
jmp 0x4c9284
mov esi, dword [esp + 0xc]
mov edi, 1
mov dword [esp + 0x14], edi
mov edi, esi
sub edi, dword [ecx + 0xc]
mov dword [esp + 0x18], 0x5059c4
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], edi
jmp 0x4c9290
test bl, 2
je 0x4c9734
xor ebx, 2
cmp esi, 0x2d
jne 0x4c968f
or ebx, 4
jmp 0x4c9288
test bl, 0x20
je 0x4c96fe
lea eax, [esi - 0x41]
cmp eax, 0xd
ja 0x4c96bf
cmp byte [esi + 0x5084af], 0
je 0x4c96bf
mov edi, 0x40
mov dword [esp + 0x18], 0x5059c4
mov dword [esp + 0x1c], 1
jmp 0x4c9284
push 0xffffffffffffffff
push dword [ecx + 8]
xor edx, edx
push ecx
mov eax, esp
push ecx
mov ecx, dword [ebp + 8]
mov dword [eax], 0
mov eax, esp
lea ecx, [ecx + 0x10]
mov dword [eax], str.doctype_tag_syntax
call fcn.004c5860
add esp, 0x10
mov dword [esp + 0x18], 0x5059c4
or edi, 0xffffffff
mov dword [esp + 0x1c], 1
jmp 0x4c9284
cmp esi, 0x5b
jne 0x4c970b
or ebx, 8
jmp 0x4c9288
cmp esi, 0x44
jne 0x4c9718
or ebx, 0x20
jmp 0x4c9288
push 0xffffffffffffffff
push dword [ecx + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.exclamation_tag_syntax
jmp 0x4c9623
test bl, 4
je 0x4c9775
xor ebx, 4
cmp esi, 0x2d
jne 0x4c9759
mov dword [esp + 0x18], 0x50852c
lea edi, [esi - 0xd]
mov dword [esp + 0x1c], 3
jmp 0x4c9284
push 0xffffffffffffffff
push dword [ecx + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.comment_tag_syntax
jmp 0x4c9623
test bl, 8
je 0x4c97b6
xor ebx, 8
cmp esi, 0x43
jne 0x4c979a
mov dword [esp + 0x18], 0x508544
lea edi, [esi - 0x3b]
mov dword [esp + 0x1c], 3
jmp 0x4c9284
push 0xffffffffffffffff
push dword [ecx + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], str.cdata_section_syntax
jmp 0x4c9623
test bl, 0x20
je 0x4c9288
cmp esi, 0x3c
jne 0x4c97cc
or ebx, 1
jmp 0x4c9288
cmp esi, 0x3e
jne 0x4c9288
sub edi, dword [ecx + 0xc]
inc edi
mov dword [ecx + 8], edi
lea edi, [esi + 2]
jmp 0x4c9370
cmp esi, 0x3c
jne 0x4c97f1
lea ebx, [esi - 0x3b]
jmp 0x4c9288
lea eax, [esi - 9]
mov edi, 4
mov dword [esp + 0x14], edi
cmp eax, 0x17
ja 0x4c9813
cmp byte [esi + 0x508223], 0
je 0x4c9813
lea ebx, [edi + 0xc]
jmp 0x4c9288
mov dword [esp + 0x18], 0x5059c8
mov edi, 2
mov dword [esp + 0x1c], 1
jmp 0x4c9284
mov ecx, dword [esp + 0x20]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
cmp dword [ecx + 8], eax
jne 0x4c9857
pop edi
mov dword [esi + 8], 0
mov eax, 0xfffffffe
mov dword [esi], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp edx, 4
je 0x4c98e0
cmp edx, 2
je 0x4c98e0
mov ecx, 0x508418
test bl, 0x20
jne 0x4c98af
cmp edx, 0x40
je 0x4c98af
cmp edx, 1
jne 0x4c9880
mov ecx, str.start_tag
jmp 0x4c98b4
test edx, edx
jne 0x4c988b
mov ecx, str.end_tag
jmp 0x4c98b4
cmp edx, 8
jne 0x4c9897
mov ecx, str.cdata_section
jmp 0x4c98b4
cmp edx, 0x10
jne 0x4c98a3
mov ecx, str.processing_instruction
jmp 0x4c98b4
cmp edx, 0x20
jne 0x4c98b4
mov ecx, str.comment
jmp 0x4c98b4
mov ecx, str.document_type
or edi, 0xffffffff
push edi
push eax
push ecx
mov eax, esp
lea edx, [edi + 3]
push ecx
mov dword [eax], ecx
mov eax, esp
lea ecx, [esi + 0x10]
mov dword [eax], str.unterminated_tag_syntax
call fcn.004c5860
add esp, 0x10
jmp 0x4c936c
sub edi, dword [ecx + 0xc]
mov dword [ecx + 8], edi
mov edi, dword [esp + 0x14]
jmp 0x4c9370
sub edi, dword [ecx + 0xc]
mov dword [ecx + 8], edi
mov edi, 4
jmp 0x4c9370