Function at 0x455860
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x30], eax
mov edx, eax
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x3c
je 0x455884
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [eax + 1], 0x3f
jne 0x45587c
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 0xac]
mov dword [eax + 0xac], 2
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0xc8]
add ecx, 2
mov dword [eax + 0xc8], ecx
mov eax, dword [edx + 0x10]
add eax, 2
mov dword [edx + 0x10], eax
mov eax, dword [edx + 0x20]
add eax, 2
mov dword [edx + 0x20], eax
mov eax, dword [edx + 0x10]
mov al, byte [eax]
cmp al, 0x25
je 0x455cb5
test al, al
je 0x455ba9
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x124]
test edi, edi
jne 0x45590a
mov edx, dword [edx + 0x24]
mov ecx, dword [edx + 0x10]
mov esi, dword [edx + 0xc]
mov eax, ecx
sub eax, esi
cmp eax, 0x1f4
jle 0x45590a
mov eax, dword [edx + 0x14]
sub eax, ecx
cmp eax, 0x1f3
jle 0x455d30
sub esp, 0xc
mov ebx, dword [ebp + 8]
push ebx
call fcn.00451510
add esp, 0x10
mov dword [ebp - 0x28], eax
test eax, eax
je 0x455d1c
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x3f
jne 0x45593c
cmp byte [eax + 1], 0x3e
je 0x455d52
sub esp, 0xc
push 0x64
call dword [0x519088]
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x455eca
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov eax, dword [eax + 0x10]
mov dl, byte [eax]
xor eax, eax
mov al, dl
cmp eax, 0x20
je 0x455991
sub eax, 9
cmp eax, 1
jbe 0x455991
cmp dl, 0xd
je 0x455991
sub esp, 0xc
mov esi, dword [ebp - 0x28]
mov ecx, 0x52aad8
mov edx, 0x41
push esi
mov eax, dword [ebp + 8]
call fcn.0044c070
add esp, 0x10
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ebx
xor edi, edi
push ecx
call fcn.00451b40
pop eax
lea ecx, [ebp - 0x10]
pop edx
mov eax, dword [ebp + 8]
push ecx
push eax
call fcn.00438660
mov esi, 0x64
mov ebx, eax
mov dword [ebp - 0x20], 0
add esp, 0x10
cmp ebx, 0xff
jg 0x455b10
lea eax, [ebx - 9]
cmp eax, 1
jbe 0x4559e4
cmp ebx, 0xd
je 0x4559e4
cmp ebx, 0x1f
jle 0x455b43
cmp ebx, 0x3f
je 0x455c56
lea esi, [esi]
lea eax, [edi + 5]
cmp esi, eax
jbe 0x455c34
mov edx, dword [ebp - 0x20]
inc edx
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x32
jle 0x455a58
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x124]
test eax, eax
jne 0x455a29
mov edx, dword [ecx + 0x24]
mov eax, dword [edx + 0x14]
sub eax, dword [edx + 0x10]
cmp eax, 0xf9
jle 0x455ca9
mov eax, dword [ebp + 8]
cmp dword [eax + 0xac], 0xffffffff
je 0x455d3d
cmp edi, 0x989680
jbe 0x455a51
mov edx, dword [ebp + 8]
test byte [edx + 0x16a], 8
je 0x455e92
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x10], 1
jne 0x455bd5
mov edx, dword [ebp - 0x2c]
mov byte [edi + edx], bl
inc edi
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0xa
je 0x455bfa
mov ebx, dword [edx + 0x20]
mov ecx, dword [ebp - 0x10]
inc ebx
add eax, ecx
mov dword [edx + 0x20], ebx
mov dword [edx + 0x10], eax
cmp byte [eax], 0x25
je 0x455c20
push eax
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00438660
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x4559c2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x124]
test eax, eax
jne 0x455af0
mov edx, dword [edx + 0x24]
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
mov eax, ecx
sub eax, ebx
cmp eax, 0x1f4
jg 0x455c70
mov edx, dword [edx + 0x14]
sub edx, ecx
cmp edx, 0xf9
jg 0x455af0
mov eax, dword [ebp + 8]
call fcn.0044d650
lea esi, [esi]
lea ecx, [ebp - 0x10]
mov eax, dword [ebp + 8]
push edx
push edx
push ecx
push eax
call fcn.00438660
add esp, 0x10
mov ebx, eax
cmp ebx, 0xff
jle 0x4559ce
lea eax, [ebx - 0x100]
cmp eax, 0xd6ff
jbe 0x4559f0
lea eax, [ebx - 0xe000]
cmp eax, 0x1ffd
jbe 0x4559f0
lea eax, [ebx - 0x10000]
cmp eax, 0xfffff
jbe 0x4559f0
cmp edi, 0x989680
ja 0x455cd4
mov ecx, dword [ebp - 0x2c]
cmp ebx, 0x3f
mov byte [ecx + edi], 0
je 0x455df5
sub esp, 0xc
mov eax, dword [ebp - 0x28]
mov ecx, 0x52ab0b
mov edx, 0x2f
push eax
mov eax, dword [ebp + 8]
call fcn.0044c070
add esp, 0x10
sub esp, 0xc
mov eax, dword [ebp - 0x2c]
push eax
call dword [0x519080]
add esp, 0x10
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xac], 0xffffffff
je 0x45587c
mov eax, dword [ebp - 0x24]
mov dword [ecx + 0xac], eax
jmp 0x45587c
push eax
push eax
push 0xfa
push edx
call fcn.004385a0
add esp, 0x10
test eax, eax
jg 0x4558d9
sub esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.0044d5b0
add esp, 0x10
jmp 0x4558d9
push eax
push eax
mov eax, dword [ebp - 0x2c]
push ebx
add eax, edi
push eax
call fcn.00436bf0
mov ecx, dword [ebp + 8]
add edi, eax
add esp, 0x10
mov edx, dword [ecx + 0x24]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0xa
jne 0x455a7b
mov ecx, dword [edx + 0x1c]
mov dword [edx + 0x20], 1
inc ecx
mov dword [edx + 0x1c], ecx
mov ecx, dword [ebp - 0x10]
add eax, ecx
mov dword [edx + 0x10], eax
cmp byte [eax], 0x25
jne 0x455a93
lea esi, [esi]
sub esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.0044e900
add esp, 0x10
jmp 0x455a93
add esi, esi
push eax
push eax
mov eax, dword [ebp - 0x2c]
push esi
push eax
call dword [0x51908c]
add esp, 0x10
test eax, eax
je 0x455de3
mov dword [ebp - 0x2c], eax
jmp 0x4559fb
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov eax, dword [eax + 0x10]
cmp byte [eax + 1], 0x3e
jne 0x4559f0
jmp 0x455b43
mov eax, dword [edx + 0x14]
sub eax, ecx
cmp eax, 0x1f3
jg 0x455af0
mov eax, dword [ebp + 8]
call fcn.0044df10
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x124]
test ebx, ebx
jne 0x455af0
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
sub edx, ecx
jmp 0x455ad9
mov eax, ecx
call fcn.0044d650
jmp 0x455a29
sub esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.0044e900
mov eax, dword [ebp + 8]
add esp, 0x10
mov edx, dword [eax + 0x24]
mov eax, dword [edx + 0x10]
mov al, byte [eax]
jmp 0x4558d1
mov ecx, dword [ebp + 8]
test byte [ecx + 0x16a], 8
jne 0x455b4f
sub esp, 0xc
mov eax, dword [ebp - 0x28]
mov ecx, str.PI__s_too_big_found
mov edx, 0x2f
push eax
mov eax, dword [ebp + 8]
call fcn.0044c070
pop eax
mov eax, dword [ebp - 0x2c]
push eax
call dword [0x519080]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x24]
add esp, 0x10
mov dword [eax + 0xac], edx
jmp 0x45587c
xor ecx, ecx
mov edx, 0x2e
mov eax, dword [ebp + 8]
call fcn.0044d130
jmp 0x455b8b
mov eax, dword [ebp + 8]
call fcn.0044df10
jmp 0x45590a
sub esp, 0xc
mov eax, dword [ebp - 0x2c]
push eax
call dword [0x519080]
add esp, 0x10
jmp 0x45587c
cmp dword [ebp - 0x30], edx
je 0x455d6f
mov ecx, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x5a
mov eax, dword [ebp + 8]
call fcn.0044c4a0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc8]
add ecx, 2
mov dword [eax + 0xc8], ecx
mov eax, dword [edx + 0x10]
add eax, 2
mov dword [edx + 0x10], eax
mov eax, dword [edx + 0x20]
add eax, 2
mov dword [edx + 0x20], eax
mov eax, dword [edx + 0x10]
mov al, byte [eax]
cmp al, 0x25
je 0x455f43
test al, al
je 0x455eeb
mov edx, dword [ebp + 8]
mov eax, dword [edx]
test eax, eax
je 0x455b8b
mov esi, dword [edx + 0xd4]
test esi, esi
jne 0x455b8b
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x455b8b
mov ecx, dword [ebp - 0x28]
push ebx
push 0
push ecx
mov edx, dword [edx + 4]
push edx
call eax
add esp, 0x10
jmp 0x455b8b
mov ecx, dword [ebp + 8]
push ebx
push ebx
push 0
push ecx
call fcn.00436e30
jmp 0x455cfd
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x30]
cmp edx, dword [eax + 0x24]
je 0x455e0f
mov ecx, str.PI_declaration_doesnt_start_and_stop_in_the_same_entity_n
mov edx, 0x41
call fcn.0044c4a0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov eax, dword [ecx + 0xc8]
add eax, 2
mov edi, dword [edx + 0x10]
mov esi, dword [edx + 0x20]
add edi, 2
mov dword [ecx + 0xc8], eax
mov dword [edx + 0x10], edi
add esi, 2
mov eax, dword [edx + 0x10]
mov dword [edx + 0x20], esi
mov al, byte [eax]
cmp al, 0x25
je 0x455f62
test al, al
je 0x455f17
cmp dword [ebp - 0x24], 1
jbe 0x455f7e
mov edx, dword [ebp + 8]
mov eax, dword [edx]
test eax, eax
je 0x455b7b
mov edi, dword [edx + 0xd4]
test edi, edi
jne 0x455b7b
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x455b7b
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
push esi
push ebx
push ecx
mov edx, dword [edx + 4]
push edx
call eax
add esp, 0x10
jmp 0x455b7b
sub esp, 0xc
mov eax, dword [ebp - 0x28]
mov ecx, str.PI__s_too_big_found
mov edx, 0x2f
push eax
mov eax, dword [ebp + 8]
call fcn.0044c070
pop eax
mov eax, dword [ebp - 0x2c]
push eax
call dword [0x519080]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov dword [ecx + 0xac], eax
jmp 0x45587c
mov edi, dword [ebp + 8]
push eax
push eax
push 0
push edi
call fcn.00436e30
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
add esp, 0x10
mov dword [edx + 0xac], ecx
jmp 0x45587c
push eax
push eax
push 0xfa
push edx
call fcn.004385a0
add esp, 0x10
test eax, eax
jg 0x455da8
sub esp, 0xc
mov edi, dword [ebp + 8]
push edi
call fcn.0044d5b0
add esp, 0x10
jmp 0x455da8
push ebx
push ebx
push 0xfa
push edx
call fcn.004385a0
add esp, 0x10
test eax, eax
jg 0x455e4b
sub esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.0044d5b0
add esp, 0x10
jmp 0x455e4b
sub esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.0044e900
mov ecx, dword [ebp + 8]
add esp, 0x10
mov edx, dword [ecx + 0x24]
mov eax, dword [edx + 0x10]
mov al, byte [eax]
jmp 0x455da0
sub esp, 0xc
push ecx
call fcn.0044e900
mov eax, dword [ebp + 8]
add esp, 0x10
mov edx, dword [eax + 0x24]
mov eax, dword [edx + 0x10]
mov al, byte [eax]
jmp 0x455e43
mov eax, dword [ebp - 0x28]
push edx
push edx
push str.oasis_xml_catalog
push eax
call fcn.004832e0
add esp, 0x10
test eax, eax
je 0x455e55
call fcn.004390d0
mov ebx, dword [ebp - 0x2c]
sub eax, 2
cmp eax, 1
ja 0x455e55
mov dl, byte [ebx]
cmp dl, 0x20
je 0x455fc0
lea eax, [edx - 9]
cmp al, 1
jbe 0x455fc0
cmp dl, 0xd
jne 0x455fc3
inc ebx
jmp 0x455fad
push eax
push 7
push str.catalog
push ebx
call fcn.00483dc0
add esp, 0x10
lea ecx, [ebx + 7]
test eax, eax
jne 0x455ff1
mov dl, byte [ecx]
cmp dl, 0x20
je 0x455fee
lea eax, [edx - 9]
cmp al, 1
jbe 0x455fee
cmp dl, 0xd
jne 0x456013
inc ecx
jmp 0x455fdb
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
push ecx
push ecx
mov ecx, str.Catalog_PI_syntax_error:__s_n
push 0
push edx
mov edx, 0x5d
call fcn.0044c3c0
add esp, 0x10
jmp 0x455e55
cmp dl, 0x3d
jne 0x455e55
inc ecx
mov dl, byte [ecx]
cmp dl, 0x20
je 0x45601c
lea eax, [edx - 9]
cmp al, 1
jbe 0x45601c
cmp dl, 0xd
je 0x45601c
cmp dl, 0x27
je 0x45603a
cmp dl, 0x22
jne 0x455ff1
mov al, byte [ecx + 1]
lea esi, [ecx + 1]
test al, al
je 0x455ff1
cmp dl, al
je 0x45605b
mov ebx, esi
inc ebx
mov al, byte [ebx]
test al, al
je 0x455ff1
cmp dl, al
jne 0x45604a
mov eax, ebx
sub eax, esi
jmp 0x45605f
mov ebx, esi
xor eax, eax
push edi
push edi
push eax
push esi
call fcn.00483b00
mov ecx, ebx
mov esi, eax
add esp, 0x10
mov dl, byte [ecx + 1]
cmp dl, 0x20
je 0x456083
lea eax, [edx - 9]
cmp al, 1
jbe 0x456083
cmp dl, 0xd
jne 0x456086
inc ecx
jmp 0x45606f
test dl, dl
jne 0x4560be
test esi, esi
je 0x455e55
mov edx, dword [ebp + 8]
push eax
push eax
push esi
mov eax, dword [edx + 0x11c]
push eax
call fcn.0043a240
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x11c], eax
mov dword [esp], esi
call dword [0x519080]
add esp, 0x10
jmp 0x455e55
push eax
push eax
mov eax, dword [ebp - 0x2c]
push 0
mov ecx, str.Catalog_PI_syntax_error:__s_n
push eax
mov edx, 0x5d
mov eax, dword [ebp + 8]
call fcn.0044c3c0
add esp, 0x10
test esi, esi
je 0x455e55
sub esp, 0xc
push esi
call dword [0x519080]
add esp, 0x10
jmp 0x455e55