Function at 0x425070
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
je 0x425092
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [eax + 1], 0x3f
jne 0x42508a
mov ecx, dword [ebx + 0xac]
mov ebp, dword [ebx + 0xc8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
lea edx, [eax + 2]
add ebp, 2
mov dword [ebx + 0xac], 2
mov dword [ebx + 0xc8], ebp
mov dword [ecx + 0x10], edx
mov edx, dword [ecx + 0x20]
add edx, 2
mov dword [ecx + 0x20], edx
mov edx, ecx
mov al, byte [eax + 2]
cmp al, 0x25
je 0x425575
test al, al
je 0x425550
mov edi, dword [ebx + 0x124]
test edi, edi
jne 0x425106
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
mov ecx, edx
sub ecx, esi
cmp ecx, 0x1f4
jg 0x425480
mov dword [esp], ebx
call fcn.0041e4d0
mov dword [esp + 0x28], eax
test eax, eax
je 0x4255d7
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x3f
jne 0x42512f
cmp byte [eax + 1], 0x3e
je 0x4254c2
mov dword [esp], 0x64
call dword [0x6713d8]
mov ebp, eax
test eax, eax
je 0x4255ea
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
mov al, byte [eax]
and eax, 0xff
lea edx, [eax - 9]
cmp edx, 1
jbe 0x425164
cmp eax, 0x20
jne 0x42549c
mov dword [esp], ebx
xor edi, edi
call fcn.00420c40
lea edx, [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.00446e90
xor esi, esi
mov edx, eax
mov dword [esp + 0x20], 0x64
lea esi, [esi]
cmp edx, 0xff
jg 0x4251f0
lea eax, [edx - 9]
cmp eax, 1
jbe 0x425340
cmp edx, 0xd
je 0x425340
cmp edx, 0x1f
jg 0x425340
mov byte [ebp + esi], 0
mov ecx, 0x6e7d53
mov eax, dword [esp + 0x28]
mov edx, 0x2f
mov dword [esp], eax
mov eax, ebx
call fcn.00417e60
mov dword [esp], ebp
call dword [0x6713e0]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0xac], ecx
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [edx - 0xe000]
cmp eax, 0x1ffd
jbe 0x425217
lea eax, [edx - 0x100]
cmp eax, 0xd6ff
jbe 0x425217
lea eax, [edx - 0x10000]
cmp eax, 0xfffff
ja 0x4251b6
lea eax, [esi + 5]
cmp dword [esp + 0x20], eax
jle 0x4253f7
inc edi
cmp edi, 0x32
jle 0x425250
mov eax, dword [ebx + 0x124]
xor edi, edi
test eax, eax
jne 0x425250
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx + 0x14]
sub eax, dword [ecx + 0x10]
cmp eax, 0xf9
jle 0x425467
lea esi, [esi]
cmp dword [esp + 0x3c], 1
jne 0x4252f0
mov byte [ebp + esi], dl
inc esi
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0xa
je 0x425311
mov ecx, dword [eax + 0x20]
inc ecx
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x3c]
add edx, ecx
mov dword [eax + 0x10], edx
cmp byte [edx], 0x25
je 0x425331
lea edx, [esp + 0x3c]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.00446e90
mov edx, eax
test eax, eax
jne 0x425190
mov eax, dword [ebx + 0x124]
test eax, eax
jne 0x4252d3
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov ecx, edx
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
sub eax, edx
cmp ecx, 0x1f4
jle 0x425450
cmp eax, 0x1f3
jle 0x425430
lea ecx, [esp + 0x3c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00446e90
mov edx, eax
jmp 0x425190
lea eax, [ebp + esi]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00447420
add esi, eax
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
cmp byte [edx], 0xa
jne 0x42526f
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x20], 1
inc ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
add edx, ecx
mov dword [eax + 0x10], edx
cmp byte [edx], 0x25
jne 0x425288
mov dword [esp], ebx
call fcn.0041b270
jmp 0x425288
cmp edx, 0x3f
jne 0x425217
mov eax, dword [ebx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax + 1], 0x3e
jne 0x425217
mov byte [ebp + esi], 0
mov eax, dword [ebx + 0x24]
cmp dword [esp + 0x24], eax
je 0x42537b
mov eax, ebx
mov ecx, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x41
call fcn.00418120
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx + 0xc8]
mov edx, dword [eax + 0x10]
add ecx, 2
mov esi, dword [eax + 0x20]
mov dword [ebx + 0xc8], ecx
add esi, 2
lea ecx, [edx + 2]
mov dword [eax + 0x20], esi
mov dword [eax + 0x10], ecx
mov dl, byte [edx + 2]
cmp dl, 0x25
je 0x425609
test dl, dl
je 0x4255b2
cmp dword [esp + 0x2c], 1
jbe 0x42561e
mov eax, dword [ebx]
test eax, eax
je 0x4251d3
mov edx, dword [ebx + 0xd4]
test edx, edx
jne 0x4251d3
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x4251d3
mov edx, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov edx, dword [ebx + 4]
mov dword [esp], edx
call eax
jmp 0x4251d3
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
add ecx, ecx
mov dword [esp], ebp
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
call dword [0x6713d4]
mov edx, dword [esp + 0x1c]
test eax, eax
je 0x42558a
mov ebp, eax
jmp 0x425224
mov eax, ebx
call fcn.0041a280
mov eax, dword [ebx + 0x124]
test eax, eax
jne 0x4252d3
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
sub eax, ecx
cmp eax, 0xf9
jg 0x4252d3
mov eax, ebx
call fcn.0041a230
jmp 0x4252d3
mov eax, ebx
mov dword [esp + 0x1c], edx
call fcn.0041a230
mov edx, dword [esp + 0x1c]
jmp 0x425250
mov eax, dword [eax + 0x14]
sub eax, edx
cmp eax, 0x1f3
jg 0x425106
mov eax, ebx
call fcn.0041a280
jmp 0x425106
cmp eax, 0xd
je 0x425164
mov eax, dword [esp + 0x28]
mov ecx, 0x6e7d34
mov dword [esp], eax
mov edx, 0x41
mov eax, ebx
call fcn.00417e60
jmp 0x425164
cmp dword [esp + 0x24], edx
je 0x4254df
mov edx, 0x5a
mov eax, ebx
mov ecx, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
call fcn.00418120
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
mov edi, dword [ebx + 0xc8]
mov ebp, dword [edx + 0x20]
add edi, 2
lea ecx, [eax + 2]
add ebp, 2
mov dword [ebx + 0xc8], edi
mov dword [edx + 0x10], ecx
mov dword [edx + 0x20], ebp
mov al, byte [eax + 2]
cmp al, 0x25
je 0x425707
test al, al
je 0x4256e2
mov eax, dword [ebx]
test eax, eax
je 0x4251dc
mov esi, dword [ebx + 0xd4]
test esi, esi
jne 0x4251dc
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x4251dc
mov edx, dword [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov edx, dword [ebx + 4]
mov dword [esp], edx
call eax
jmp 0x4251dc
mov dword [esp + 4], 0xfa
mov dword [esp], edx
call fcn.00446980
test eax, eax
jg 0x4250e3
mov dword [esp], ebx
call fcn.0041a1a0
jmp 0x4250e3
mov dword [esp], ebx
call fcn.0041b270
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
mov al, byte [eax]
jmp 0x4250db
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00446590
mov dword [esp], ebp
call dword [0x6713e0]
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xac], eax
jmp 0x42508a
mov dword [esp + 4], 0xfa
mov dword [esp], eax
call fcn.00446980
test eax, eax
jg 0x4253b0
mov dword [esp], ebx
call fcn.0041a1a0
jmp 0x4253b0
xor ecx, ecx
mov edx, 0x2e
mov eax, ebx
call fcn.00417fb0
jmp 0x4251dc
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00446590
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xac], eax
jmp 0x42508a
mov dword [esp], ebx
call fcn.0041b270
mov eax, dword [ebx + 0x24]
mov edx, dword [eax + 0x10]
mov dl, byte [edx]
jmp 0x4253a8
mov eax, dword [esp + 0x28]
mov dword [esp + 4], str.oasis_xml_catalog
mov dword [esp], eax
call fcn.00445450
test eax, eax
je 0x4253bb
call fcn.004075c0
mov esi, ebp
sub eax, 2
cmp eax, 1
ja 0x4253bb
mov al, byte [esi]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x42565f
cmp al, 0x20
je 0x42565f
cmp al, 0xd
jne 0x425662
inc esi
jmp 0x42564d
mov dword [esp + 8], 7
mov dword [esp + 4], str.catalog
mov dword [esp], esi
call fcn.00445500
test eax, eax
jne 0x4256c9
lea ecx, [esi + 7]
mov al, byte [ecx]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x425693
cmp al, 0x20
je 0x425693
cmp al, 0xd
jne 0x425696
inc ecx
jmp 0x425681
cmp al, 0x3d
jne 0x4253bb
inc ecx
mov al, byte [ecx]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x42569e
cmp al, 0x20
je 0x42569e
cmp al, 0xd
je 0x42569e
cmp al, 0x22
je 0x4256b9
cmp al, 0x27
jne 0x4256c9
inc ecx
mov edi, ecx
jmp 0x4256c3
cmp al, dl
je 0x42571c
inc edi
mov dl, byte [edi]
test dl, dl
jne 0x4256be
mov dword [esp], ebp
mov ecx, str.Catalog_PI_syntax_error:__s_n
mov edx, 0x5d
mov eax, ebx
call fcn.00419b00
jmp 0x4253bb
mov dword [esp + 4], 0xfa
mov dword [esp], edx
call fcn.00446980
test eax, eax
jg 0x425510
mov dword [esp], ebx
call fcn.0041a1a0
jmp 0x425510
mov dword [esp], ebx
call fcn.0041b270
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 0x10]
mov al, byte [eax]
jmp 0x425508
mov eax, edi
mov dword [esp], ecx
sub eax, ecx
inc edi
mov dword [esp + 4], eax
call fcn.00445280
mov esi, eax
mov al, byte [edi]
lea edx, [eax - 9]
cmp dl, 1
jbe 0x425741
cmp al, 0x20
je 0x425741
cmp al, 0xd
jne 0x425744
inc edi
jmp 0x42572f
test al, al
jne 0x425776
test esi, esi
je 0x4253bb
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x11c]
mov dword [esp], eax
call fcn.00407750
mov dword [ebx + 0x11c], eax
mov dword [esp], esi
call dword [0x6713e0]
jmp 0x4253bb
mov dword [esp], ebp
mov ecx, str.Catalog_PI_syntax_error:__s_n
mov edx, 0x5d
mov eax, ebx
call fcn.00419b00
test esi, esi
je 0x4253bb
mov dword [esp], esi
call dword [0x6713e0]
jmp 0x4253bb