Function at 0x4134c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [ebp - 0x18], 0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x24], 0
mov esi, 0x64
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x28], ecx
mov edx, dword [ecx + 0x10]
cmp byte [edx], 0x3c
je 0x4134f5
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [edx + 1], 0x3f
jne 0x4134ed
mov eax, dword [edi + 0xac]
mov dword [edi + 0xac], 2
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0xc8]
add eax, 2
mov dword [edi + 0xc8], eax
lea eax, [edx + 2]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x20]
add eax, 2
mov dword [ecx + 0x20], eax
cmp byte [edx + 2], 0x25
je 0x413923
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x4138e8
mov eax, dword [edi + 0x124]
test eax, eax
je 0x41374f
sub esp, 0xc
push edi
call fcn.0040c7a0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x1c], eax
je 0x413aa2
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0x3f
jne 0x41357c
cmp byte [eax + 1], 0x3e
je 0x413967
sub esp, 0xc
push 0x64
call dword [0x69a2c8]
add esp, 0x10
test eax, eax
mov dword [ebp - 0x14], eax
je 0x413ab8
mov eax, dword [edi + 0x24]
xor ebx, ebx
mov eax, dword [eax + 0x10]
mov bl, byte [eax]
cmp ebx, 0xff
jg 0x4135c4
lea eax, [ebx - 9]
cmp ebx, 0x20
setne dl
cmp eax, 1
seta al
and eax, 0xff
test edx, eax
je 0x4135de
cmp ebx, 0xd
je 0x4135de
mov ecx, dword [ebp - 0x1c]
mov edx, 0x41
push ebx
mov eax, edi
push ebx
push ecx
push 0x741330
call fcn.00406330
add esp, 0x10
sub esp, 0xc
push edi
call fcn.0040ede0
pop eax
pop edx
lea esi, [esi]
lea edx, [ebp - 0x10]
push edx
push edi
call fcn.00453db0
add esp, 0x10
mov ebx, eax
cmp ebx, 0xff
jg 0x413783
lea eax, [ebx - 9]
cmp eax, 1
setbe dl
cmp ebx, 0xd
sete al
or eax, edx
test al, 1
jne 0x413630
cmp ebx, 0x1f
jle 0x4137ba
lea esi, [esi]
cmp ebx, 0x3f
je 0x4138a8
mov eax, dword [ebp - 0x18]
add eax, 5
cmp eax, esi
jae 0x413886
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x32
jle 0x4136a0
mov eax, dword [edi + 0x124]
test eax, eax
jne 0x413674
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 0xf9
jle 0x4138c0
cmp dword [edi + 0xac], 0xffffffff
je 0x413911
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x18], 0x989680
jbe 0x4136a0
test byte [edi + 0x16a], 8
je 0x413937
mov esi, esi
cmp dword [ebp - 0x10], 1
jne 0x413828
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov byte [eax + edx], bl
inc eax
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0xa
je 0x413853
mov ebx, dword [ecx + 0x20]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x10]
inc ebx
add eax, edx
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x10], eax
cmp byte [eax], 0x25
je 0x413875
push eax
push eax
lea eax, [ebp - 0x10]
push eax
push edi
call fcn.00453db0
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x4135ff
mov eax, dword [edi + 0x124]
test eax, eax
jne 0x41373a
mov edx, dword [edi + 0x24]
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
mov eax, ecx
sub eax, ebx
cmp eax, 0x1f4
jle 0x413728
mov eax, dword [edx + 0x14]
sub eax, ecx
cmp eax, 0x1f3
jle 0x4138cc
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 0xf9
jle 0x413741
push eax
push eax
jmp 0x4135f0
mov eax, edi
call fcn.004070a0
push eax
push eax
jmp 0x4135f0
mov edx, dword [edi + 0x24]
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
mov eax, ecx
sub eax, ebx
cmp eax, 0x1f4
jle 0x413550
mov eax, dword [edx + 0x14]
sub eax, ecx
cmp eax, 0x1f3
jg 0x413550
mov eax, edi
call fcn.00407050
jmp 0x413550
lea eax, [ebx - 0x100]
cmp eax, 0xd6ff
lea eax, [ebx - 0xe000]
setbe dl
cmp eax, 0x1ffd
setbe al
or eax, edx
test al, 1
jne 0x413630
lea eax, [ebx - 0x10000]
cmp eax, 0xfffff
jbe 0x413630
cmp dword [ebp - 0x18], 0x989680
jbe 0x4137d0
test byte [edi + 0x16a], 8
je 0x413937
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp ebx, 0x3f
mov byte [edx + eax], 0
je 0x4139f2
push eax
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov edx, 0x2f
mov eax, edi
push 0x74134f
call fcn.00406330
add esp, 0x10
sub esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
call dword [0x69a2d0]
add esp, 0x10
cmp dword [edi + 0xac], 0xffffffff
je 0x4134ed
mov edx, dword [ebp - 0x20]
mov dword [edi + 0xac], edx
jmp 0x4134ed
mov ecx, dword [ebp - 0x18]
push eax
push eax
mov eax, dword [ebp - 0x14]
push ebx
add eax, ecx
push eax
call fcn.004544a0
mov ecx, dword [edi + 0x24]
mov edx, dword [ebp - 0x18]
add edx, eax
add esp, 0x10
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x18], edx
cmp byte [eax], 0xa
jne 0x4136c6
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x10]
inc eax
mov dword [ecx + 0x20], 1
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x10]
add eax, edx
mov dword [ecx + 0x10], eax
cmp byte [eax], 0x25
jne 0x4136e1
sub esp, 0xc
push edi
call fcn.00408c00
add esp, 0x10
jmp 0x4136e1
add esi, esi
push eax
push eax
mov eax, dword [ebp - 0x14]
push esi
push eax
call dword [0x69a2c4]
add esp, 0x10
test eax, eax
je 0x413a88
mov dword [ebp - 0x14], eax
jmp 0x413647
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax + 1], 0x3e
jne 0x413639
jmp 0x4137ba
mov eax, edi
call fcn.004070a0
jmp 0x413674
mov eax, edi
call fcn.00407050
mov ebx, dword [edi + 0x124]
test ebx, ebx
je 0x413728
push eax
push eax
jmp 0x4135f0
push eax
push eax
push 0xfa
push ecx
call fcn.00453850
add esp, 0x10
test eax, eax
jg 0x413542
sub esp, 0xc
push edi
call fcn.00406f90
add esp, 0x10
jmp 0x413542
sub esp, 0xc
mov edx, dword [ebp - 0x14]
push edx
call dword [0x69a2d0]
jmp 0x4134ed
sub esp, 0xc
push edi
call fcn.00408c00
add esp, 0x10
mov ecx, dword [edi + 0x24]
jmp 0x413536
push eax
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov edx, 0x2f
mov eax, edi
push str.PI__s_too_big_found
call fcn.00406330
pop eax
mov eax, dword [ebp - 0x14]
push eax
call dword [0x69a2d0]
mov eax, dword [ebp - 0x20]
mov dword [edi + 0xac], eax
jmp 0x4134ed
cmp ecx, dword [ebp - 0x28]
je 0x413986
sub esp, 0xc
mov edx, 0x5a
mov eax, edi
push str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
call fcn.00406030
add esp, 0x10
mov ecx, dword [edi + 0x24]
mov edx, dword [ecx + 0x10]
mov eax, dword [edi + 0xc8]
add eax, 2
mov dword [edi + 0xc8], eax
lea eax, [edx + 2]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x20]
add eax, 2
mov dword [ecx + 0x20], eax
cmp byte [edx + 2], 0x25
je 0x413c27
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x413bfe
mov eax, dword [edi]
test eax, eax
je 0x41380d
mov esi, dword [edi + 0xd4]
test esi, esi
jne 0x41380d
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x41380d
mov ecx, dword [ebp - 0x1c]
push ebx
push 0
push ecx
mov edx, dword [edi + 4]
push edx
call eax
jmp 0x41380a
mov ecx, dword [edi + 0x24]
cmp ecx, dword [ebp - 0x28]
je 0x413a14
sub esp, 0xc
mov edx, 0x41
mov eax, edi
push str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
call fcn.00406030
add esp, 0x10
mov ecx, dword [edi + 0x24]
mov edx, dword [ecx + 0x10]
mov esi, dword [edi + 0xc8]
mov ebx, dword [ecx + 0x20]
add esi, 2
add ebx, 2
lea eax, [edx + 2]
mov dword [edi + 0xc8], esi
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x20], ebx
cmp byte [edx + 2], 0x25
je 0x413c3b
mov eax, dword [ecx + 0x10]
cmp byte [eax], 0
je 0x413bd5
cmp dword [ebp - 0x20], 1
jbe 0x413ac7
mov eax, dword [edi]
test eax, eax
je 0x4137fd
mov edx, dword [edi + 0xd4]
test edx, edx
jne 0x4137fd
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x4137fd
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
push esi
push ebx
push ecx
mov edx, dword [edi + 4]
push edx
call eax
jmp 0x4137fa
push esi
push esi
push 0
push edi
call fcn.00453570
pop ebx
mov ecx, dword [ebp - 0x14]
push ecx
call dword [0x69a2d0]
jmp 0x41381a
sub esp, 0xc
mov edx, 0x2e
mov eax, edi
push 0
call fcn.00405c40
jmp 0x41380a
push esi
push esi
push 0
push edi
call fcn.00453570
jmp 0x413959
push eax
push eax
mov eax, dword [ebp - 0x1c]
push str.oasis_xml_catalog
push eax
call fcn.004623e0
add esp, 0x10
test eax, eax
je 0x413a51
call fcn.004292d0
sub eax, 2
cmp eax, 1
ja 0x413a51
xor esi, esi
mov ebx, dword [ebp - 0x14]
mov cl, byte [ebx]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x413b11
inc ebx
jmp 0x413af8
cmp cl, 0xd
je 0x413b0e
push eax
push 7
push 0x7413d0
push ebx
call fcn.00462490
add esp, 0x10
test eax, eax
jne 0x413ba0
add ebx, 7
mov cl, byte [ebx]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
je 0x413b47
inc ebx
jmp 0x413b2e
cmp cl, 0xd
je 0x413b44
cmp cl, 0x3d
jne 0x413a51
inc ebx
mov cl, byte [ebx]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x413b55
cmp cl, 0xd
je 0x413b55
cmp cl, 0x27
mov byte [ebp - 0x29], cl
setne dl
cmp cl, 0x22
setne al
and eax, 0xff
test edx, eax
jne 0x413ba0
inc ebx
mov edx, ebx
jmp 0x413b9a
cmp cl, byte [ebp - 0x29]
je 0x413c4f
inc ebx
mov cl, byte [ebx]
test cl, cl
jne 0x413b90
mov ecx, dword [ebp - 0x14]
mov edx, 0x5d
push ebx
mov eax, edi
push 0
push ecx
push str.Catalog_PI_syntax_error:__s_n
call fcn.004060b0
add esp, 0x10
test esi, esi
je 0x413a51
sub esp, 0xc
push esi
call dword [0x69a2d0]
add esp, 0x10
jmp 0x413a51
push edx
push edx
push 0xfa
push ecx
call fcn.00453850
add esp, 0x10
test eax, eax
jg 0x413a4b
sub esp, 0xc
push edi
call fcn.00406f90
add esp, 0x10
jmp 0x413a4b
push eax
push eax
push 0xfa
push ecx
call fcn.00453850
add esp, 0x10
test eax, eax
jg 0x4139bd
sub esp, 0xc
push edi
call fcn.00406f90
add esp, 0x10
jmp 0x4139bd
sub esp, 0xc
push edi
call fcn.00408c00
add esp, 0x10
mov ecx, dword [edi + 0x24]
jmp 0x4139b1
sub esp, 0xc
push edi
call fcn.00408c00
add esp, 0x10
mov ecx, dword [edi + 0x24]
jmp 0x413a3f
test cl, cl
je 0x413ba0
push eax
push eax
mov eax, ebx
sub eax, edx
push eax
push edx
call fcn.00462260
add esp, 0x10
mov esi, eax
inc ebx
mov cl, byte [ebx]
cmp cl, 0x20
lea eax, [ecx - 9]
sete dl
cmp al, 1
setbe al
or eax, edx
test al, 1
jne 0x413c69
cmp cl, 0xd
je 0x413c69
test cl, cl
jne 0x413ba0
test esi, esi
je 0x413a51
push eax
push eax
push esi
mov eax, dword [edi + 0x11c]
push eax
call fcn.00429420
add esp, 0x10
mov dword [edi + 0x11c], eax
jmp 0x413bc3