Function at 0x4d9370
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov ecx, dword [ebp + 8]
or edx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
push edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edx
lea edi, [eax + ecx*2]
nop word [eax + eax]
movzx esi, word [edi]
test esi, esi
jne 0x4d9485
mov ecx, dword [esp + 0x18]
sub edi, dword [ecx + 0xc]
sar edi, 1
mov dword [ecx + 8], edi
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x4d9457
mov esi, dword [ecx + 0xcc]
call fcn.004d9dd0
test al, al
je 0x4d9453
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x1c]
mov edi, dword [edx + 8]
sub edi, ecx
mov eax, dword [eax + 0xcc]
sub eax, esi
je 0x4d9430
mov esi, dword [ebp + 8]
sub ecx, eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4d9421
sub ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x4d942d
cmp dword [esp + 0x28], 0
je 0x4d942d
sub dword [edx], eax
sub dword [edx + 4], eax
sub dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x1c]
add ecx, edi
mov eax, dword [eax + 0x50]
cmp dword [eax + 0x14], 8
jb 0x4d9446
mov eax, dword [eax]
lea edi, [eax + ecx*2]
mov dword [edx + 0xc], eax
movzx esi, word [edi]
test esi, esi
jne 0x4d9489
mov edx, dword [esp + 0xc]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x18]
mov edi, dword [ecx + 4]
cmp dword [esi + 8], edi
jne 0x4d9a9e
mov dword [ecx + 8], 0
mov eax, 0xfffffffe
mov dword [ecx], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x4d94db
push esi
push str.__t_n_r__
call fcn.0049d7f7
add esp, 8
test eax, eax
je 0x4d94cf
mov edx, dword [esp + 0x18]
mov ecx, edi
mov eax, dword [esp + 0x1c]
sub ecx, dword [edx + 0xc]
sar ecx, 1
sub ecx, eax
mov dword [edx], eax
dec eax
mov dword [esp + 0x28], ecx
add eax, ecx
mov dword [edx + 4], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
jmp 0x4d94df
mov edx, dword [esp + 0xc]
add edi, 2
jmp 0x4d93c0
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x10], 0
je 0x4d9725
cmp esi, 0x3e
jne 0x4d95a9
test bl, 0xc0
jne 0x4d95cd
mov ecx, dword [esp + 0x14]
mov eax, edi
sub eax, dword [edx + 0xc]
sar eax, 1
inc eax
mov dword [edx + 8], eax
cmp ecx, 1
jne 0x4d954b
mov dword [esp + 0x10], 0
cmp dword [esp + 0xc], ecx
jne 0x4d9594
cmp dword [esp + 0x20], 0x2f
jne 0x4d9594
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4d953f
push eax
push str.__t_n_r_
call fcn.0049d7f7
add esp, 8
test eax, eax
je 0x4d9594
mov eax, dword [ebp + 8]
or dword [eax + 0xc], 0x10000
jmp 0x4d9594
dec eax
cmp eax, ecx
jle 0x4d9580
mov esi, dword [esp + 0x14]
lea eax, [ecx + ecx]
mov ecx, edi
sub ecx, eax
mov eax, dword [esp + 0x10]
lea edx, [ecx + 2]
sub eax, edx
mov dword [esp + 0x2c], eax
sub esi, 1
je 0x4d958c
mov ax, word [eax + edx]
mov cx, word [edx]
add edx, 2
cmp cx, ax
mov eax, dword [esp + 0x2c]
je 0x4d9568
mov edx, dword [esp + 0xc]
add edi, 2
jmp 0x4d93c0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0xc]
test bl, 0x20
je 0x4d9a21
add edi, 2
jmp 0x4d93c0
mov edx, dword [esp + 0xc]
cmp esi, 0x3c
jne 0x4d95d1
cmp edx, 2
je 0x4d95bc
cmp edx, 0xffffffff
jne 0x4d95d1
mov esi, dword [esp + 0x18]
sub edi, dword [esi + 0xc]
sar edi, 1
mov dword [esi + 8], edi
jmp 0x4d9a25
mov edx, dword [esp + 0xc]
test dl, 1
je 0x4d96e4
test bl, 0xc0
je 0x4d962f
cmp esi, 0x22
jne 0x4d9606
test bl, bl
jns 0x4d96d0
mov eax, dword [esp + 0x20]
xor ebx, 0x80
mov dword [esp + 0x24], eax
add edi, 2
mov dword [esp + 0x20], esi
jmp 0x4d93c0
cmp esi, 0x27
jne 0x4d96d0
test bl, 0x40
je 0x4d96d0
mov eax, dword [esp + 0x20]
xor ebx, 0x40
mov dword [esp + 0x24], eax
add edi, 2
mov dword [esp + 0x20], esi
jmp 0x4d93c0
cmp esi, 0x22
jne 0x4d965a
test ebx, 0x100
je 0x4d96d0
mov eax, dword [esp + 0x20]
xor ebx, 0x180
mov dword [esp + 0x24], eax
add edi, 2
mov dword [esp + 0x20], esi
jmp 0x4d93c0
cmp esi, 0x27
jne 0x4d9681
test ebx, 0x100
je 0x4d96d0
mov eax, dword [esp + 0x20]
xor ebx, 0x140
mov dword [esp + 0x24], eax
add edi, 2
mov dword [esp + 0x20], esi
jmp 0x4d93c0
cmp esi, 0x3d
jne 0x4d96ac
cmp eax, esi
je 0x4d96ac
test ebx, 0x100
jne 0x4d96b4
mov eax, dword [esp + 0x20]
xor ebx, 0x100
mov dword [esp + 0x24], eax
add edi, 2
mov dword [esp + 0x20], esi
jmp 0x4d93c0
test ebx, 0x100
je 0x4d96d0
push esi
push 0x559914
call fcn.0049d7f7
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
jne 0x4d96d0
xor ebx, 0x100
mov eax, dword [esp + 0x20]
add edi, 2
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
jmp 0x4d93c0
test dl, 0x40
je 0x4d9584
cmp esi, 0x22
jne 0x4d9709
test bl, 0x40
jne 0x4d9584
xor ebx, 0x80
add edi, 2
jmp 0x4d93c0
cmp esi, 0x27
jne 0x4d9584
test bl, bl
js 0x4d9584
xor ebx, 0x40
add edi, 2
jmp 0x4d93c0
test ebx, ebx
je 0x4d9a3e
test bl, 0x10
je 0x4d9774
cmp esi, 0x3c
je 0x4d9b27
push esi
push 0x559920
call fcn.0049d7f7
add esp, 8
test eax, eax
jne 0x4d9580
mov edx, 2
mov dword [esp + 0x10], 0x55992c
xor ebx, 0x10
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], edx
add edi, edx
jmp 0x4d93c0
test bl, 1
je 0x4d9860
xor ebx, 1
cmp esi, 0x60
ja 0x4d9830
cmp esi, 0x40
jbe 0x4d9797
cmp esi, 0x5b
jb 0x4d9830
cmp esi, 0x5f
je 0x4d9830
cmp esi, 0x3a
je 0x4d9830
cmp esi, 0x2f
jne 0x4d97c2
mov dword [esp + 0x10], 0x559934
xor edx, edx
mov dword [esp + 0x14], 1
jmp 0x4d97f0
cmp esi, 0x21
jne 0x4d97d6
mov edx, dword [esp + 0xc]
or ebx, 2
add edi, 2
jmp 0x4d93c0
cmp esi, 0x3f
jne 0x4d980c
mov dword [esp + 0x10], 0x559938
mov edx, 0x10
mov dword [esp + 0x14], 2
mov esi, dword [esp + 0x18]
mov eax, edi
mov dword [esp + 0xc], edx
sub eax, dword [esi + 0xc]
sar eax, 1
inc eax
add edi, 2
mov dword [esp + 0x1c], eax
jmp 0x4d93c0
push 0xffffffffffffffff
push dword [edx + 8]
mov dword [esp + 0x18], 0x559940
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0x559944
jmp 0x4d99c8
mov esi, dword [esp + 0x18]
mov eax, edi
mov edx, 1
mov dword [esp + 0x10], 0x559930
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], edx
sub eax, dword [esi + 0xc]
sar eax, 1
add edi, 2
mov dword [esp + 0x1c], eax
jmp 0x4d93c0
test bl, 2
je 0x4d992c
xor ebx, 2
cmp esi, 0x2d
jne 0x4d9880
mov edx, dword [esp + 0xc]
or ebx, 4
add edi, 2
jmp 0x4d93c0
test bl, 0x20
je 0x4d98e0
push esi
push 0x559968
call fcn.0049d7f7
add esp, 8
mov dword [esp + 0x14], 1
test eax, eax
je 0x4d98b8
mov edx, 0x40
mov dword [esp + 0x10], 0x559970
mov dword [esp + 0xc], edx
add edi, 2
jmp 0x4d93c0
mov esi, dword [esp + 0x18]
push 0xffffffffffffffff
mov dword [esp + 0x14], 0x559974
push dword [esi + 8]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0x559978
jmp 0x4d99d0
cmp esi, 0x5b
jne 0x4d98f4
mov edx, dword [esp + 0xc]
or ebx, 8
add edi, 2
jmp 0x4d93c0
cmp esi, 0x44
jne 0x4d9908
mov edx, dword [esp + 0xc]
or ebx, 0x20
add edi, 2
jmp 0x4d93c0
push 0xffffffffffffffff
push dword [edx + 8]
mov dword [esp + 0x18], 0x5599a0
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0x5599a4
jmp 0x4d99c8
test bl, 4
je 0x4d997b
xor ebx, 4
cmp esi, 0x2d
jne 0x4d995a
mov edx, 0x20
mov dword [esp + 0x10], 0x5599d4
mov dword [esp + 0x14], 3
add edi, 2
mov dword [esp + 0xc], edx
jmp 0x4d93c0
push 0xffffffffffffffff
push dword [edx + 8]
mov dword [esp + 0x18], 0x5599dc
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0x5599e0
jmp 0x4d99c8
test bl, 8
je 0x4d99ef
xor ebx, 8
cmp esi, 0x43
jne 0x4d99a9
mov edx, 8
mov dword [esp + 0x10], 0x559a08
mov dword [esp + 0x14], 3
add edi, 2
mov dword [esp + 0xc], edx
jmp 0x4d93c0
push 0xffffffffffffffff
push dword [edx + 8]
mov dword [esp + 0x18], 0x559a10
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0x559a14
mov dword [esp + 0x24], 1
mov ecx, dword [ebp + 8]
xor edx, edx
add ecx, 0x10
call fcn.004dbfd0
or edx, 0xffffffff
add esp, 0x10
mov dword [esp + 0xc], edx
add edi, 2
jmp 0x4d93c0
test bl, 0x20
je 0x4d9580
cmp esi, 0x3c
jne 0x4d9a0c
mov edx, dword [esp + 0xc]
or ebx, 1
add edi, 2
jmp 0x4d93c0
cmp esi, 0x3e
jne 0x4d9580
sub edi, dword [edx + 0xc]
sar edi, 1
inc edi
mov dword [edx + 8], edi
lea edx, [esi + 2]
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 8]
pop edi
pop esi
sub ecx, dword [eax + 4]
mov dword [eax + 8], ecx
mov dword [eax], edx
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp esi, 0x3c
jne 0x4d9a52
mov edx, dword [esp + 0xc]
lea ebx, [esi - 0x3b]
add edi, 2
jmp 0x4d93c0
mov eax, 4
push esi
push str.__t_n_r
mov dword [esp + 0x14], eax
call fcn.0049d7f7
add esp, 8
test eax, eax
je 0x4d9a7e
mov edx, dword [esp + 0xc]
mov ebx, 0x10
add edi, 2
jmp 0x4d93c0
mov edx, 2
mov dword [esp + 0x10], 0x559a4c
mov dword [esp + 0x14], 1
add edi, edx
mov dword [esp + 0xc], edx
jmp 0x4d93c0
cmp edx, 4
je 0x4d9a25
cmp edx, 2
je 0x4d9a25
mov ecx, 0x559820
test bl, 0x20
jne 0x4d9af6
cmp edx, 0x40
je 0x4d9af6
cmp edx, 1
jne 0x4d9ac7
mov ecx, str.start_tag
jmp 0x4d9afb
test edx, edx
jne 0x4d9ad2
mov ecx, str.end_tag
jmp 0x4d9afb
cmp edx, 8
jne 0x4d9ade
mov ecx, 0x559868
jmp 0x4d9afb
cmp edx, 0x10
jne 0x4d9aea
mov ecx, str.processing_instruction
jmp 0x4d9afb
cmp edx, 0x20
jne 0x4d9afb
mov ecx, 0x5598b4
jmp 0x4d9afb
mov ecx, str.document_type
push 0xffffffffffffffff
push edi
push ecx
mov eax, esp
mov edx, 2
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, dword [ebp + 8]
mov dword [eax], 0x5598c4
lea ecx, [ecx + 0x10]
call fcn.004dbfd0
add esp, 0x10
or edx, 0xffffffff
jmp 0x4d9a25
sub edi, dword [edx + 0xc]
sar edi, 1
mov dword [edx + 8], edi
mov edx, 4
jmp 0x4d9a21