Function at 0x45c750
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x536568
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov ebp, ecx
xor esi, esi
push 0x54e04a
lea ecx, [esp + 0x14]
mov dword [esp + 0x2c], esi
call fcn.004018f0
cmp dword [esp + 0x44], esi
mov dword [esp + 0x34], esi
je 0x45d460
call fcn.0050a0d4
test eax, eax
je 0x45c7a2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x45c7a4
xor eax, eax
mov ecx, dword [eax + 0x464]
mov esi, dword [eax + 0x46c]
mov eax, dword [ecx + 0x180]
test eax, eax
mov dword [esp + 0x28], ecx
jl 0x45d4b6
cmp eax, dword [ecx + 0x630]
jge 0x45d4b6
mov edx, dword [ecx + 0x62c]
mov ecx, dword [ebp + 0xe4]
test ecx, ecx
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov edi, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], 0
mov ebx, edi
mov dword [esp + 0x18], edi
je 0x45c8c1
mov ecx, ebp
call fcn.00506d88
mov ecx, dword [eax + 0x3674]
cmp ecx, 0xffffffff
mov edx, dword [eax + 0x680]
mov esi, dword [edx + 0x178]
je 0x45c847
test ecx, ecx
jl 0x45d4b6
cmp ecx, dword [edx + 0x184]
jge 0x45d4b6
mov edx, dword [edx + 0x180]
mov esi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0xfc]
test ecx, ecx
jne 0x45c87e
mov edx, dword [ebp + 0x1c]
push edx
call dword [sym.imp.user32.dll_GetParent]
push eax
call fcn.00506a68
mov eax, dword [eax + 0x974]
mov edx, dword [eax + 0x1fc]
mov edi, dword [esi + 0x18]
xor ecx, ecx
cmp edx, 3
sete cl
mov dword [esp + 0x1c], ecx
jmp 0x45c8a3
mov eax, dword [eax + 0x3670]
test eax, eax
jl 0x45d4b6
cmp eax, dword [esi + 0x24]
jge 0x45d4b6
mov edx, dword [esi + 0x20]
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov ebx, dword [eax + 0x118]
mov esi, dword [esp + 0x40]
cmp esi, 0xf1
ja case.0x45c8ba.19
movzx edx, byte [esi + 0x45d614]
jmp dword [edx*4 + 0x45d4bc]
mov eax, dword [eax + 0x100]
cmp eax, 0xffffffff
je 0x45c8a3
test eax, eax
jl 0x45d4b6
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 0x14]
jge 0x45d4b6
mov edx, ecx
mov ecx, dword [edx + 0x10]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 0xf8]
cmp ecx, 0xffffffff
mov eax, dword [eax]
mov edx, dword [eax + 0x178]
je 0x45c91b
test ecx, ecx
jl 0x45d4b6
cmp ecx, dword [eax + 0x184]
jge 0x45d4b6
mov edx, dword [eax + 0x180]
lea edx, [edx + ecx*4]
mov edx, dword [edx]
mov edi, dword [eax + 0x22c]
mov dword [esp + 0x24], edi
cmp dword [eax + 0x1fc], 3
jne 0x45c936
mov dword [esp + 0x1c], 1
mov eax, dword [esi + 0xf4]
cmp eax, 0xffffffff
mov edi, dword [edx + 0x18]
je 0x45c960
test eax, eax
jl 0x45d4b6
cmp eax, dword [edx + 0x24]
jge 0x45d4b6
mov ecx, dword [edx + 0x20]
lea eax, [ecx + eax*4]
jmp 0x45c89b
cmp ecx, 0xffffffff
je 0x45c8a3
mov dword [esp + 0x18], edi
jmp 0x45c8a3
push 0x5558e8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x5558e0
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
test edi, edi
jmp 0x45c9a2
mov eax, dword [esp + 0x18]
test eax, eax
lea ecx, [esp + 0x10]
je 0x45c9b7
push 0x5558d8
call fcn.004018b0
jmp 0x45d157
push 0x5558d0
call fcn.004018b0
jmp 0x45d157
push 0x5558c8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x5558bc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x5558b4
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x5558ac
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555898
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555890
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555888
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x55587c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555864
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555854
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555844
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555834
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x55582c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
push 0x555824
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d076
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45caeb
push 0x55581c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
mov eax, dword [esp + 0x24]
test eax, eax
lea ecx, [esp + 0x10]
je 0x45cb06
push 0x555814
call fcn.004018b0
jmp 0x45d157
push 0x555808
call fcn.004018b0
jmp 0x45d157
mov eax, dword [esp + 0x1c]
test eax, eax
lea ecx, [esp + 0x10]
je 0x45cb30
push 0x555800
call fcn.004018b0
jmp 0x45d157
push 0x5557f4
call fcn.004018b0
jmp 0x45d157
push 0x5557e8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5557d8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5557cc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x5557bc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5557b4
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x5557a8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x55579c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555790
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555788
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555774
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555768
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555760
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x55574c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555738
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
mov eax, dword [esp + 0x18]
test eax, eax
lea ecx, [esp + 0x10]
je 0x45cc64
push 0x555724
call fcn.004018b0
jmp 0x45d157
push 0x555710
call fcn.004018b0
jmp 0x45d157
push 0x5556fc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x5556e4
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x5556d0
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x5556bc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x55569c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555688
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555674
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555660
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
mov eax, dword [esp + 0x18]
test eax, eax
lea ecx, [esp + 0x10]
je 0x45cd26
push 0x55564c
call fcn.004018b0
jmp 0x45d1e1
push 0x555638
call fcn.004018b0
jmp 0x45d1e1
push 0x555624
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x55560c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5555f8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5555e4
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5555c4
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5555b0
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x55559c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x555594
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555588
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
test ebx, ebx
lea ecx, [esp + 0x10]
je 0x45cdf7
push 0x555580
call fcn.004018b0
jmp 0x45d0e0
push 0x555574
call fcn.004018b0
jmp 0x45d0e0
push 0x555568
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x55555c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555550
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555548
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555530
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555524
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555510
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x5554fc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
test ebx, ebx
lea ecx, [esp + 0x10]
je 0x45ceb5
push 0x5554e8
call fcn.004018b0
jmp 0x45d0e0
push 0x5554d4
call fcn.004018b0
jmp 0x45d0e0
push 0x5554c0
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x5554a8
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555494
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555480
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x555460
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
push 0x55544c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d0e0
test ebx, ebx
lea ecx, [esp + 0x10]
je 0x45cf4d
push 0x55543c
call fcn.004018b0
jmp 0x45d1e1
push 0x555428
call fcn.004018b0
jmp 0x45d1e1
push 0x555414
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x555400
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5553ec
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5553dc
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5553c0
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x5553ac
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d1e1
push 0x55539c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555380
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x55536c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555358
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555814
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555800
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x55534c
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0x555340
lea ecx, [esp + 0x14]
call fcn.004018b0
jmp 0x45d157
push 0
push 0x54e04a
lea ecx, [esp + 0x18]
call fcn.00401720
test esi, esi
jl 0x45d083
cmp esi, 0x12
jle 0x45d14e
cmp esi, 0xc8
jl 0x45d097
cmp esi, 0xe9
jl 0x45d14e
cmp esi, 0x76
jl 0x45d0a5
cmp esi, 0x79
jle 0x45d14e
cmp esi, 0x3d
jl 0x45d0b3
cmp esi, 0x42
jle 0x45d14e
cmp esi, 0x1f
je 0x45d14e
cmp esi, 0x29
je 0x45d14e
cmp esi, 0x34
je 0x45d14e
cmp esi, 0x64
jl 0x45d1e1
cmp esi, 0x75
jg 0x45d1e1
lea ecx, [esp + 0x40]
call fcn.00401a90
mov eax, dword [ebp + 0x50]
mov ecx, dword [eax + 0x5b4]
mov edx, dword [esp + 0x44]
push esi
push ecx
push edx
mov byte [esp + 0x40], 2
call fcn.0049d180
fstp dword [esp + 0x50]
push esi
call fcn.0049b990
fld dword [esp + 0x54]
fdiv st(1)
call fcn.004eaa58
fstp st(0)
push eax
lea eax, [esp + 0x54]
push 0x555338
push eax
call fcn.00404c00
add esp, 0x1c
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x14]
call fcn.00405370
lea ecx, [esp + 0x40]
mov byte [esp + 0x34], 0
call fcn.004015d0
jmp 0x45d1e1
cmp esi, 0xf
je 0x45d1e1
call fcn.00503c89
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x50]
mov ecx, dword [eax + 0x5b4]
mov edx, dword [esp + 0x44]
push esi
push ecx
push edx
mov byte [esp + 0x40], 1
call fcn.0049d180
fstp dword [esp + 0x50]
add esp, 0xc
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00458240
fmul dword [esp + 0x44]
call fcn.004eaa58
push eax
lea eax, [esp + 0x44]
push 0x555338
push eax
call fcn.00404c00
mov edi, dword [esp + 0x4c]
mov eax, dword [edi - 0xc]
add esp, 0xc
push eax
push edi
lea ecx, [esp + 0x18]
call fcn.00404690
lea eax, [edi - 0x10]
mov byte [esp + 0x34], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45d1e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x54e04a
lea ecx, [esp + 0x18]
call fcn.004018f0
test esi, esi
mov byte [esp + 0x34], 3
jl 0x45d1fd
cmp esi, 0xc
jle 0x45d217
cmp esi, 0xd0
jl 0x45d20d
cmp esi, 0xdc
jle 0x45d217
cmp esi, 0x76
je 0x45d217
cmp esi, 0x77
jne 0x45d227
push 1
push 0x555334
lea ecx, [esp + 0x1c]
call fcn.00401720
cmp esi, 0xd
je 0x45d25a
cmp esi, 0xe
je 0x45d25a
cmp esi, 0x10
je 0x45d25a
cmp esi, 0xdd
je 0x45d25a
cmp esi, 0xde
je 0x45d25a
cmp esi, 0x78
je 0x45d25a
cmp esi, 0x79
je 0x45d25a
cmp esi, 0x42
je 0x45d25a
cmp esi, 0x41
jne 0x45d26a
push 8
push 0x555328
lea ecx, [esp + 0x1c]
call fcn.00401720
cmp esi, 0x11
je 0x45d27e
cmp esi, 0x12
je 0x45d27e
cmp esi, 0x3d
jl 0x45d28e
cmp esi, 0x3f
jg 0x45d28e
push 7
push 0x555320
lea ecx, [esp + 0x1c]
call fcn.00401720
cmp esi, 0x7a
jl 0x45d29b
cmp esi, 0x80
jle 0x45d2ab
cmp esi, 0xe9
jl 0x45d2bb
cmp esi, 0xf1
jg 0x45d2bb
push 4
push 0x555318
lea ecx, [esp + 0x1c]
call fcn.00401720
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00404690
cmp esi, 0x32
je 0x45d2db
cmp esi, 0x33
jne 0x45d43d
mov esi, dword [esp + 0x20]
test esi, esi
je 0x45d43d
push 0x54e04a
lea ecx, [esp + 0x48]
call fcn.004018f0
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x26c]
test eax, eax
mov byte [esp + 0x34], 4
je 0x45d32f
fld dword [esi + 0x154]
call fcn.004eaa58
fld dword [esi + 0x150]
push eax
call fcn.004eaa58
push eax
push 0x55530c
lea eax, [esp + 0x50]
push eax
jmp 0x45d400
mov eax, dword [esi + 0x100]
cmp eax, 0xffffffff
je 0x45d342
lea ecx, [esi + 0xc]
jmp 0x45d3d0
mov eax, dword [esi + 0x104]
cmp eax, 0xffffffff
je 0x45d382
push eax
lea ecx, [esi + 0x20]
call fcn.0040bbf0
mov esi, dword [eax]
fld dword [esi + 0xc]
call fcn.004eaa58
fld dword [esi + 8]
add eax, dword [edi + 0x190]
push eax
call fcn.004eaa58
add eax, dword [edi + 0x18c]
push eax
push 0x55530c
lea edx, [esp + 0x50]
push edx
jmp 0x45d400
mov eax, dword [esi + 0x108]
cmp eax, 0xffffffff
je 0x45d3c2
push eax
lea ecx, [esi + 0x34]
call fcn.0040bbf0
mov esi, dword [eax]
fld dword [esi + 0xc]
call fcn.004eaa58
fld dword [esi + 8]
add eax, dword [edi + 0x190]
push eax
call fcn.004eaa58
add eax, dword [edi + 0x18c]
push eax
push 0x55530c
lea eax, [esp + 0x50]
push eax
jmp 0x45d400
mov eax, dword [esi + 0x10c]
cmp eax, 0xffffffff
je 0x45d408
lea ecx, [esi + 0x48]
push eax
call fcn.0040bbf0
mov esi, dword [eax]
fld dword [esi + 0xc]
call fcn.004eaa58
fld dword [esi + 8]
add eax, dword [edi + 0x190]
push eax
call fcn.004eaa58
add eax, dword [edi + 0x18c]
push eax
lea ecx, [esp + 0x4c]
push 0x55530c
push ecx
call fcn.00404c00
add esp, 0x10
mov eax, dword [esp + 0x44]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00404690
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x34], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45d43d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x34], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45d460
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
push eax
call fcn.00402ae0
mov esi, dword [esp + 0x40]
add eax, 0x10
mov dword [esi], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
add esp, 4
mov dword [esp + 0x34], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec dword [ebp - 0x357cf3b8]
push eax
xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45d49f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x2c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x28
ret 0xc
call fcn.004fd76e
nop
jb 0x45d487
inc ebp
add byte [ebp - 0x67ffba37], al
leave
inc ebp
add dh, al
leave
inc ebp
add cl, bl
leave
inc ebp
add ah, ch
leave
inc ebp
add bh, bh
leave
inc ebp
add byte [edx], dl
retf 0x45