Function at 0x403230
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x1c0
mov eax, dword [0x43fc34]
xor eax, esp
mov dword [esp + 0x1bc], eax
mov eax, dword [edx + 8]
push ebx
push ebp
xor ebp, ebp
push esi
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebp
mov esi, dword [edx + 8]
push edi
mov edi, dword [edx + 0xc]
mov al, byte [edi + esi]
add edi, esi
or ebx, 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], edi
test al, al
jne 0x40329a
mov dword [ecx + 8], ebp
mov dword [ecx], ebp
lea eax, [ebp - 2]
jmp 0x403942
movsx eax, al
mov dword [esp + 0x14], eax
test eax, eax
je 0x40362a
lea esp, [esp]
test ebp, ebp
je 0x403379
movsx ecx, byte [esp + 0x14]
push ecx
push str.__t_n_r__
call fcn.0041eaf6
add esp, 8
test eax, eax
je 0x403608
mov eax, dword [esp + 0x24]
mov esi, edi
sub esi, dword [eax + 0xc]
sub esi, ebp
test ebx, ebx
jne 0x4032ed
lea edx, [esi + ebp - 1]
mov dword [eax], ebp
mov dword [eax + 4], edx
jmp 0x403363
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
mov edx, dword [eax - 8]
add edi, 0x10
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
sub edx, esi
or ecx, edx
jge 0x403313
push esi
mov ecx, edi
call fcn.00404e30
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi]
push esi
add ecx, ebp
push ecx
push edx
call fcn.00423740
add esp, 0xc
mov eax, esi
cmp esi, 0xffffffff
jne 0x403343
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x40334b
push ecx
push eax
call fcn.0041e501
add esp, 8
test eax, eax
jl 0x403a00
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x403a00
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
mov edi, dword [esp + 0x2c]
mov byte [eax + ecx], 0
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x18], 0
je 0x4035b8
mov eax, dword [esp + 0x14]
cmp eax, 0x3e
jne 0x403455
mov ecx, dword [esp + 0x10]
test cl, 0xc0
jne 0x403470
mov eax, dword [esp + 0x1c]
mov esi, edi
sub esi, dword [edx + 0xc]
mov dword [esp + 0x38], esi
cmp eax, 1
jne 0x4033fa
mov dword [esp + 0x18], 0
cmp ebx, eax
jne 0x403447
cmp dword [esp + 0x30], 0x2f
jne 0x403447
cmp dword [esp + 0x34], 0
je 0x4033ed
movsx edx, byte [esp + 0x34]
push edx
push 0x438c48
call fcn.0041eaf6
mov ecx, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x403447
mov eax, dword [esp + 0x20]
or dword [eax + 0xc], 0x10000
jmp 0x403447
cmp esi, eax
jle 0x403608
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
sub esi, ebp
inc esi
sub edi, esi
sub ebp, 1
je 0x403433
mov al, byte [esi]
mov dl, byte [edi + esi]
inc esi
cmp al, dl
je 0x403413
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
jmp 0x403608
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x18], 0
test cl, 0x20
je 0x40392a
jmp 0x403608
cmp eax, 0x3c
jne 0x40346c
cmp ebx, 2
je 0x403a0a
cmp ebx, 0xffffffff
je 0x403a0a
mov ecx, dword [esp + 0x10]
test bl, 1
je 0x40358b
test cl, 0xc0
je 0x4034d0
cmp eax, 0x22
jne 0x4034a6
test cl, cl
jns 0x40357d
xor ecx, 0x80
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x403608
cmp eax, 0x27
jne 0x40357d
test cl, 0x40
je 0x40357d
xor ecx, 0x40
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x403608
cmp eax, 0x22
jne 0x4034fc
test ecx, 0x100
je 0x40357d
xor ecx, 0x180
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x403608
cmp eax, 0x27
jne 0x403524
test ecx, 0x100
je 0x40357d
xor ecx, 0x140
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x403608
cmp eax, 0x3d
jne 0x403552
cmp dword [esp + 0x30], eax
je 0x403552
test ecx, 0x100
jne 0x40355a
xor ecx, 0x100
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x403608
test ecx, 0x100
je 0x40357d
movsx eax, byte [esp + 0x14]
push eax
push str.__t_n_r
call fcn.0041eaf6
add esp, 8
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x40357d
xor dword [esp + 0x10], 0x100
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x403608
test bl, 0x40
je 0x403608
cmp eax, 0x22
jne 0x4035a6
test cl, 0x40
jne 0x403608
xor ecx, 0x80
mov dword [esp + 0x10], ecx
jmp 0x403608
cmp eax, 0x27
jne 0x403608
test cl, cl
js 0x403608
xor ecx, 0x40
mov dword [esp + 0x10], ecx
jmp 0x403608
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40395b
test al, 0x10
je 0x40366e
cmp dword [esp + 0x14], 0x3c
je 0x403a13
movsx edx, byte [esp + 0x14]
push edx
push str.__t_n_r
call fcn.0041eaf6
add esp, 8
test eax, eax
jne 0x403608
xor dword [esp + 0x10], 0x10
mov ebx, 2
mov dword [esp + 0x18], 0x438c50
mov dword [esp + 0x1c], 1
push edi
call fcn.0041eb0d
mov edx, dword [esp + 0x28]
add edi, eax
movsx eax, byte [edi]
add esp, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4032b0
sub edi, dword [edx + 0xc]
dec edi
mov esi, edi
cmp ebx, 4
je 0x40392a
cmp ebx, 2
je 0x40392a
test byte [esp + 0x10], 0x20
mov eax, 0x438bc8
jne 0x4039cb
cmp ebx, 0x40
je 0x4039cb
cmp ebx, 1
jne 0x40399c
mov eax, str.Element_tag
jmp 0x4039d0
test al, 1
je 0x403766
mov ecx, dword [esp + 0x14]
xor eax, 1
mov dword [esp + 0x10], eax
cmp ecx, 0x60
ja 0x403747
cmp ecx, 0x40
jbe 0x403698
cmp ecx, 0x5b
jb 0x403747
cmp ecx, 0x5f
je 0x403747
cmp ecx, 0x3a
je 0x403747
cmp ecx, 0x2f
jne 0x4036c8
mov ebp, edi
sub ebp, dword [edx + 0xc]
xor ebx, ebx
inc ebp
mov dword [esp + 0x18], 0x438c54
mov dword [esp + 0x28], ebp
jmp 0x403600
cmp ecx, 0x21
jne 0x4036d9
or eax, 2
mov dword [esp + 0x10], eax
jmp 0x403608
cmp ecx, 0x3f
jne 0x403700
mov ebp, edi
sub ebp, dword [edx + 0xc]
mov dword [esp + 0x18], 0x438ab4
inc ebp
mov dword [esp + 0x1c], 2
lea ebx, [ecx - 0x2f]
mov dword [esp + 0x28], ebp
jmp 0x403608
push esi
push str.tag_name_character
lea eax, [esp + 0x170]
push str.Incorrect__s_at_offset__d
push eax
mov dword [esp + 0x28], 0x438c54
mov dword [esp + 0x2c], 1
call fcn.0041d9d4
add esp, 0x10
lea ecx, [esp + 0x168]
push ecx
mov ecx, dword [esp + 0x24]
add ecx, 0x10
call fcn.00404bf0
or ebx, 0xffffffff
jmp 0x403608
mov ebp, edi
sub ebp, dword [edx + 0xc]
mov ebx, 1
mov dword [esp + 0x18], 0x438c54
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebp
jmp 0x403608
test al, 2
je 0x40381c
mov ecx, dword [esp + 0x14]
xor eax, 2
mov dword [esp + 0x10], eax
cmp ecx, 0x2d
jne 0x40378a
or eax, 4
mov dword [esp + 0x10], eax
jmp 0x403608
cmp ecx, 0x5b
jne 0x40379f
test al, 0x20
jne 0x4037b4
or eax, 8
mov dword [esp + 0x10], eax
jmp 0x403608
cmp ecx, 0x44
jne 0x4037b4
test al, 0x20
jne 0x4037b4
or eax, 0x20
mov dword [esp + 0x10], eax
jmp 0x403608
movsx edx, byte [esp + 0x14]
push edx
push 0x438c88
call fcn.0041eaf6
add esp, 8
mov dword [esp + 0x18], 0x438c54
mov dword [esp + 0x1c], 1
test eax, eax
je 0x4037e5
mov ebx, 0x40
jmp 0x403608
push esi
push str.__tag
lea eax, [esp + 0xa8]
push str.Incorrect__s_at_offset__d
push eax
call fcn.0041d9d4
add esp, 0x10
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x24]
add ecx, 0x10
call fcn.00404bf0
or ebx, 0xffffffff
jmp 0x403608
test al, 4
je 0x40388f
xor eax, 4
cmp dword [esp + 0x14], 0x2d
mov dword [esp + 0x10], eax
jne 0x403848
mov dword [esp + 0x18], 0x438c94
mov dword [esp + 0x1c], 3
mov ebx, 0x20
jmp 0x403608
push esi
push str.comment_tag
lea edx, [esp + 0x10c]
push str.Incorrect__s_at_offset__d
push edx
mov dword [esp + 0x28], 0x438c54
mov dword [esp + 0x2c], 1
call fcn.0041d9d4
mov ecx, dword [esp + 0x30]
add esp, 0x10
lea eax, [esp + 0x104]
push eax
add ecx, 0x10
call fcn.00404bf0
or ebx, 0xffffffff
jmp 0x403608
test al, 8
je 0x4038fc
xor eax, 8
cmp dword [esp + 0x14], 0x43
mov dword [esp + 0x10], eax
jne 0x4038bb
mov dword [esp + 0x18], 0x438ca4
mov dword [esp + 0x1c], 3
mov ebx, 8
jmp 0x403608
push esi
push 0x438bc8
lea ecx, [esp + 0x44]
push str.Incorrect__s_at_offset__d
push ecx
mov dword [esp + 0x28], 0x438c54
mov dword [esp + 0x2c], 1
call fcn.0041d9d4
mov ecx, dword [esp + 0x30]
add esp, 0x10
lea edx, [esp + 0x3c]
push edx
add ecx, 0x10
call fcn.00404bf0
or ebx, 0xffffffff
jmp 0x403608
test al, 0x20
je 0x403608
mov ecx, dword [esp + 0x14]
cmp ecx, 0x3c
jne 0x403919
or eax, 1
mov dword [esp + 0x10], eax
jmp 0x403608
cmp ecx, 0x3e
jne 0x403608
sub edi, dword [edx + 0xc]
lea ebx, [ecx + 2]
mov esi, edi
mov ecx, dword [esp + 0x24]
lea eax, [esi + 1]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x20]
sub eax, dword [ecx + 4]
mov dword [ecx], ebx
mov dword [ecx + 8], eax
mov eax, ebx
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041d795
add esp, 0x1c0
ret
cmp dword [esp + 0x14], 0x3c
jne 0x40396f
mov dword [esp + 0x10], 1
jmp 0x403608
movsx eax, byte [esp + 0x14]
push eax
push str.__t_n_r
mov ebx, 4
call fcn.0041eaf6
add esp, 8
test eax, eax
je 0x4035f3
mov dword [esp + 0x10], 0x10
jmp 0x403608
test ebx, ebx
jne 0x4039a7
mov eax, str.Element_end_tag
jmp 0x4039d0
cmp ebx, 8
jne 0x4039b3
mov eax, str.CDATA_Section
jmp 0x4039d0
cmp ebx, 0x10
jne 0x4039bf
mov eax, str.Processing_instruction
jmp 0x4039d0
cmp ebx, 0x20
jne 0x4039d0
mov eax, str.Comment
jmp 0x4039d0
mov eax, str.Doctype
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 4]
push ecx
push eax
lea edx, [esp + 0x44]
push str._s_at_offset__d_unterminated
push edx
or ebx, 0xffffffff
call fcn.0041d9d4
add esp, 0x10
lea eax, [esp + 0x3c]
push eax
lea ecx, [edi + 0x10]
call fcn.00404bf0
jmp 0x40392a
push 0x80070057
call fcn.00404f70
sub edi, dword [edx + 0xc]
dec edi
jmp 0x403928
sub edi, dword [edx + 0xc]
mov ebx, 4
dec edi
jmp 0x403928