Function at 0x43c930
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x4d8228
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
je 0x43d3a9
mov ebp, dword [eax + 8]
cmp dword [ebp + 8], 0x4a
mov ebx, 0x3d4ccccd
mov dword [ebp + 0x118], 1
mov dword [ebp + 0xf8], 0
jne 0x43ca9e
push 1
mov ecx, ebp
call fcn.00418ce0
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
push ebp
mov esi, eax
call fcn.0042eef0
fld dword [ebp + 0x10c]
fcomp dword [0x4fd1ec]
fld dword [esi + 0x148]
fnstsw ax
test ah, 5
jp 0x43c9c2
fabs
fchs
jmp 0x43c9c4
fabs
push 0
fstp dword [esi + 0x148]
push 2
mov ecx, ebp
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x43ca9e
push 0x54
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 0
je 0x43ca07
mov ecx, eax
call fcn.00407070
mov esi, eax
jmp 0x43ca09
xor esi, esi
mov ecx, esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
mov dword [esi + 0x44], 0x3f060a92
mov dword [esi + 0x48], 0x3ff47645
call fcn.00407580
mov ecx, esi
mov dword [esi + 0x2c], 0x3e99999a
call fcn.00407580
fld dword [esi + 0x30]
fadd dword [0x4dbb78]
lea edx, [edi + 0x30]
push edx
mov ecx, esi
fst dword [esi + 0x34]
fld st(0)
fmulp st(1)
fst dword [esi + 0x3c]
fsub dword [esi + 0x38]
fdivr qword [0x4db398]
fstp dword [esi + 0x40]
call fcn.00439ce0
fld dword [edi + 0x2c]
fsub dword [esi + 0x18]
fld dword [edi + 0x28]
fsub dword [esi + 0x14]
fld dword [edi + 0x24]
fsub dword [esi + 0x10]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
mov eax, dword [edi + 0x24]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x28]
mov dword [esi + 0x14], ecx
mov edx, dword [edi + 0x2c]
mov dword [esi + 0x18], edx
mov dword [edi + 0x20], esi
cmp dword [ebp + 8], 0x49
jne 0x43cccf
push 0
push 2
mov ecx, ebp
call fcn.00419e90
mov ecx, dword [eax + 0x1c]
test ecx, ecx
mov dword [esp + 0x48], eax
jne 0x43cc64
push 0x54
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x40], 1
je 0x43cae7
mov ecx, eax
call fcn.00407070
mov esi, eax
jmp 0x43cae9
xor esi, esi
mov edi, 0x3e99999a
mov ecx, esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x4c], edi
mov dword [esi + 0x44], 0x3f060a92
mov dword [esi + 0x48], 0x3ff47645
call fcn.00407580
mov ecx, esi
mov dword [esi + 0x2c], edi
call fcn.00407580
fld dword [esi + 0x30]
fadd dword [0x4dbb78]
mov edi, dword [esp + 0x48]
lea ebx, [edi + 0x30]
lea eax, [esp + 0x20]
fst dword [esi + 0x34]
push eax
fld st(0)
mov ecx, esi
fmulp st(1)
fst dword [esi + 0x3c]
fsub dword [esi + 0x38]
fdivr qword [0x4db398]
fstp dword [esi + 0x40]
fld dword [ebx + 8]
fchs
fld dword [ebx + 4]
fchs
fld dword [ebx]
fchs
fstp dword [esp + 0x24]
fstp dword [esp + 0x28]
fstp dword [esp + 0x2c]
call fcn.00439ce0
fld dword [edi + 0x2c]
add edi, 0x24
fsub dword [esi + 0x18]
mov ecx, edi
fld dword [edi + 4]
push 0x54
fsub dword [esi + 0x14]
fld dword [edi]
fsub dword [esi + 0x10]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
mov edx, dword [ecx]
mov dword [esi + 0x10], edx
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x4c]
mov dword [esi + 0x14], eax
mov ecx, dword [ecx + 8]
mov dword [esi + 0x18], ecx
mov dword [edx + 0x1c], esi
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x40], 2
je 0x43cbc9
mov ecx, eax
call fcn.00407070
mov esi, eax
jmp 0x43cbcb
xor esi, esi
mov ecx, esi
mov dword [esp + 0x40], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
mov dword [esi + 0x44], 0x3f060a92
mov dword [esi + 0x48], 0x3ff47645
call fcn.00407580
mov ecx, esi
mov dword [esi + 0x2c], 0x3e99999a
call fcn.00407580
fld dword [esi + 0x30]
fadd dword [0x4dbb78]
push ebx
mov ecx, esi
fst dword [esi + 0x34]
fld st(0)
fmulp st(1)
fst dword [esi + 0x3c]
fsub dword [esi + 0x38]
fdivr qword [0x4db398]
fstp dword [esi + 0x40]
call fcn.00439ce0
fld dword [edi + 8]
fsub dword [esi + 0x18]
mov ebx, 0x3d4ccccd
fld dword [edi + 4]
fsub dword [esi + 0x14]
fld dword [edi]
fsub dword [esi + 0x10]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
mov eax, dword [edi]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x48]
mov dword [esi + 0x14], ecx
mov edx, dword [edi + 8]
mov dword [esi + 0x18], edx
mov dword [eax + 0x20], esi
push 2
mov ecx, ebp
call fcn.00418ce0
mov ecx, eax
call fcn.00401580
push 3
mov ecx, ebp
call fcn.00418ce0
mov ecx, eax
call fcn.00401580
push 2
mov ecx, ebp
call fcn.00418ce0
mov eax, dword [eax + 0xa8]
mov eax, dword [eax]
mov esi, 0x3e4ccccd
mov dword [eax + 0x128], esi
mov dword [eax + 0x13c], ebx
push 3
mov ecx, ebp
mov dword [eax + 0x150], ebx
call fcn.00418ce0
mov eax, dword [eax + 0xa8]
mov eax, dword [eax]
mov dword [eax + 0x128], esi
mov dword [eax + 0x13c], ebx
mov dword [eax + 0x150], ebx
cmp dword [ebp + 8], 0x25
jne 0x43cd04
push 0
mov ecx, ebp
call fcn.00418aa0
mov esi, eax
test esi, esi
je 0x43cd04
push 0
mov ecx, esi
call fcn.00418ce0
mov ecx, eax
call fcn.00401580
push 1
mov ecx, esi
call fcn.00418ce0
mov ecx, eax
call fcn.00401580
cmp dword [ebp + 8], 0x13
jne 0x43cd27
push 2
mov ecx, ebp
call fcn.00418ce0
test eax, eax
je 0x43d21b
mov ecx, eax
call fcn.00401580
jmp 0x43d21b
lea ecx, [ebp + 0x24]
push 0x509548
push ecx
call fcn.004c81d0
add esp, 8
test eax, eax
je 0x43cda0
push 0
push 3
mov ecx, ebp
call fcn.00419e90
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43d21b
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
push 1
push esi
call fcn.00428040
mov edi, eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x11c]
fld dword [ecx + 0xf4]
call fcn.004c7c20
mov edx, dword [edi + 4]
push 1
mov ecx, ebp
mov dword [edx + 0x1034], eax
call fcn.00418ce0
push 1
mov ecx, ebp
call fcn.00418ce0
mov ecx, eax
call fcn.00401580
jmp 0x43d21b
mov eax, dword [ebp + 8]
cmp eax, 0x34
jne 0x43cdf1
push 0
push 3
mov ecx, ebp
call fcn.00419e90
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43d21b
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
push esi
call fcn.00428880
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 0x11c]
fld dword [edx + 0xf4]
mov edi, eax
call fcn.004c7c20
mov ecx, dword [edi + 4]
mov dword [ecx + 0x1034], eax
jmp 0x43d21b
cmp eax, 0x31
je 0x43d1e6
cmp eax, 0x33
je 0x43d1e6
cmp eax, 0x30
je 0x43d1e6
cmp eax, 0x4c
je 0x43d1e6
cmp eax, 0x4d
je 0x43d1e6
cmp eax, 0x4e
je 0x43d1e6
cmp eax, 0x3a
jne 0x43cece
push 0
push 4
mov ecx, ebp
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x43d21b
push 8
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 3
je 0x43ce6d
mov ecx, eax
call fcn.00447690
mov ebx, eax
jmp 0x43ce6f
xor ebx, ebx
mov esi, dword [ebx]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00439d80
mov ecx, esi
mov dword [esi + 0x2c], 0x3fc00000
call fcn.00407580
push 0
mov ecx, esi
call fcn.00407900
lea edx, [edi + 0x30]
push edx
mov ecx, esi
call fcn.00439ce0
lea eax, [edi + 0x24]
push eax
mov ecx, esi
call fcn.00439c20
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x20], ebx
mov ecx, dword [ecx + 0xc]
push edi
call fcn.00428bf0
jmp 0x43d21b
cmp eax, 0x3d
jne 0x43d022
push 0
push 4
mov ecx, ebp
call fcn.00419e90
mov ebx, eax
mov eax, dword [ebx + 0x20]
test eax, eax
jne 0x43cfae
push 8
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 4
je 0x43cf16
mov ecx, eax
call fcn.00447690
mov dword [esp + 0x48], eax
jmp 0x43cf1e
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x48]
mov esi, dword [edx]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00439d80
mov ecx, esi
mov dword [esi + 0x2c], 0x3e4ccccd
call fcn.00407580
push 0x40000000
mov ecx, esi
call fcn.00407900
lea eax, [ebx + 0x30]
push eax
mov ecx, esi
call fcn.00439ce0
lea edi, [ebx + 0x24]
push edi
mov ecx, esi
call fcn.00439c20
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
mov dword [ebx + 0x20], ecx
mov ecx, dword [edx + 0xc]
push ebx
call fcn.00428bf0
mov edx, dword [edi + 4]
mov eax, dword [eax]
mov ecx, dword [edi]
mov edi, dword [edi + 8]
mov dword [esp + 0x30], edx
fld dword [esp + 0x30]
fadd dword [0x4db30c]
add eax, 4
mov dword [eax], ecx
fstp dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
push 1
push 4
mov ecx, ebp
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x43d21b
push 8
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 5
je 0x43cfeb
mov ecx, eax
call fcn.00447690
mov ebx, eax
jmp 0x43cfed
xor ebx, ebx
mov esi, dword [ebx]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00439d80
mov ecx, esi
mov dword [esi + 0x2c], 0x3e4ccccd
call fcn.00407580
push 0x40000000
jmp 0x43ce9c
cmp eax, 0x3c
jne 0x43d0ad
push str.Flag
mov ecx, ebp
call fcn.00419530
mov ebx, eax
mov eax, dword [ebx + 0x1c]
test eax, eax
jne 0x43d21b
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x103c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x288]
add edx, 0x2c
push edx
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
push str.flag
call fcn.00463eb0
mov edx, dword [esi + 0xc]
push eax
lea ecx, [ebx + 0x24]
push ecx
mov ecx, dword [edx + 0x1020]
call fcn.00424e90
mov esi, eax
mov edi, 0xc8
lea ebx, [ebx]
mov ecx, dword [esi + 4]
push 0x3f847ae1
push 0x40000000
call fcn.00412b10
dec edi
jne 0x43d090
mov dword [ebx + 0x1c], esi
jmp 0x43d21b
cmp eax, 0x3b
jne 0x43d147
push 0
push 4
mov ecx, ebp
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x43d21b
push 8
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 6
je 0x43d0f3
mov ecx, eax
call fcn.00447690
mov ebx, eax
jmp 0x43d0f5
xor ebx, ebx
mov esi, dword [ebx]
push 0x41700000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e99999a
call fcn.00439d80
mov ecx, esi
mov dword [esi + 0x2c], 0x3f000000
call fcn.00407580
push 0
mov ecx, esi
call fcn.00407900
lea eax, [edi + 0x30]
push eax
mov ecx, esi
call fcn.00439ce0
lea ecx, [edi + 0x24]
push ecx
mov ecx, esi
call fcn.00439c20
mov dword [edi + 0x20], ebx
jmp 0x43d21b
cmp eax, 7
jne 0x43d21b
xor ebx, ebx
push ebx
push 0xb
mov ecx, ebp
call fcn.00419e90
mov edi, eax
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x43d1da
push 0x54
call fcn.004c73ca
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
mov dword [esp + 0x40], 7
je 0x43d18a
mov ecx, eax
call fcn.00407070
mov esi, eax
jmp 0x43d18c
xor esi, esi
push 0x41c80000
mov ecx, esi
mov dword [esp + 0x44], 0xffffffff
mov dword [esi + 0x4c], 0x3e19999a
call fcn.00439d80
mov ecx, esi
mov dword [esi + 0x2c], 0x3f000000
call fcn.00407580
push 0x40000000
mov ecx, esi
call fcn.00407900
lea edx, [edi + 0x30]
push edx
mov ecx, esi
call fcn.00439ce0
lea eax, [edi + 0x24]
push eax
mov ecx, esi
call fcn.00439c20
mov dword [edi + 0x20], esi
inc ebx
cmp ebx, 2
jb 0x43d152
jmp 0x43d21b
push 0
push 3
mov ecx, ebp
call fcn.00419e90
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x43d21b
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
push eax
call fcn.00428850
fld dword [ebp + 0xf4]
mov esi, eax
call fcn.004c7c20
mov edx, dword [esi + 4]
mov dword [edx + 0x1034], eax
xor eax, eax
mov dword [0x512360], eax
mov cl, byte [ebp + 0x24]
test cl, cl
je 0x43d24e
lea esp, [esp]
mov cl, byte [eax + 0x509564]
test cl, cl
je 0x43d24e
cmp byte [eax + ebp + 0x24], cl
jne 0x43d24e
inc eax
mov dword [0x512360], eax
mov cl, byte [eax + ebp + 0x24]
test cl, cl
jne 0x43d230
cmp dword [ebp + 8], 0x35
jne 0x43d293
push 0x509570
mov ecx, ebp
call fcn.00419530
mov esi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x43d293
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0xc]
push esi
call fcn.00428740
mov edi, eax
mov ecx, dword [edi + 4]
add esi, 0x30
push esi
call fcn.00439b00
mov eax, dword [edi + 4]
mov dword [eax + 0x1034], 1
jmp 0x43d297
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
cmp eax, 0xc
jne 0x43d2ad
mov ecx, dword [ebx + 0xc]
push ebp
call fcn.00427290
jmp 0x43d397
cmp eax, 0x3e
jne 0x43d2c0
mov ecx, dword [ebx + 0xc]
push ebp
call fcn.00427360
jmp 0x43d397
cmp eax, 0x2c
jne 0x43d2df
fld dword [ebp + 0xf4]
call fcn.004c7c20
mov ecx, dword [ebx + 0xc]
push eax
push ebp
call fcn.004273c0
jmp 0x43d397
cmp eax, 0x56
jne 0x43d338
fild dword [ebp + 0x10]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jp 0x43d316
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x288]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 0xc]
push 0x509574
call fcn.00463eb0
push 2
jmp 0x43d388
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x288]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0xc]
push 0x509578
call fcn.00463eb0
push 2
jmp 0x43d388
cmp eax, 0x59
jne 0x43d397
fild dword [ebp + 0x10]
fcomp dword [0x4fd1ec]
fnstsw ax
test ah, 0x44
jp 0x43d368
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax + 0x288]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
push 0x509580
jmp 0x43d381
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x288]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 0xc]
push 0x509584
call fcn.00463eb0
push 5
mov ecx, ebp
mov esi, eax
call fcn.00418ce0
mov dword [eax + 0xa8], esi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x43c965
mov ebp, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x43d3c0
mov eax, dword [esp + 0x48]
lea esp, [esp]
xor edi, edi
test eax, eax
jne 0x43d3cd
mov edi, 0xff
jmp 0x43d3e3
cmp eax, 1
jne 0x43d3d9
mov edi, 0xfe
jmp 0x43d3e3
cmp eax, 2
jne 0x43d3e3
mov edi, 0xfd
mov ecx, dword [ebp + 0x1c]
push edi
call fcn.00419380
mov ebx, eax
xor esi, esi
test ebx, ebx
jbe 0x43d40a
mov ecx, dword [ebp + 0x1c]
push esi
push edi
call fcn.00419e90
inc esi
cmp esi, ebx
mov dword [eax + 0x40], 0
jb 0x43d3f4
mov eax, dword [esp + 0x48]
inc eax
cmp eax, 3
mov dword [esp + 0x48], eax
jb 0x43d3b5
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret 4