Function at 0x424110
Capabilities:
Parse pe header
Validate payment card number using luhn algorithm

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov edi, dword [0x45a304]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
lea eax, [ecx + ecx*4]
shl eax, 8
cdq
idiv edi
mov esi, eax
lea eax, [ebx + ebx*4]
shl eax, 8
cdq
idiv edi
mov ebp, eax
cmp esi, 0x63
jle 0x424158
xor edi, edi
cmp eax, 0x63
jg 0x4241c8
add esp, 0x2c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
imul eax, dword [esp + 0x48], 0x2d0
mov ebx, dword [0x45a300]
xor edi, edi
cdq
idiv ebx
mov ecx, eax
imul eax, dword [esp + 0x4c], 0x2d0
cdq
idiv ebx
lea edx, [esi - 0xb]
cmp edx, 0x4d
ja 0x42414b
lea edx, [ebp - 0xb]
cmp edx, 0x4d
ja 0x4242b0
mov edx, dword [0x4583e0]
test edx, edx
je 0x424328
cmp edx, 0xffff
jg 0x424328
sub ecx, 0x26d
xor edi, edi
cmp ecx, 0x4d
ja 0x42414b
sub eax, 0x26d
cmp eax, 0x4d
ja 0x42414b
jmp 0x42431a
mov eax, dword [0x4583e0]
cmp eax, 0xffff
jg 0x4241dc
test eax, eax
jne 0x42414b
mov esi, dword [0x45a31c]
mov edi, dword [0x42e2e8]
mov eax, ecx
mov ecx, dword [0x45a320]
sub eax, esi
imul eax, edi
cdq
idiv ecx
mov dword [esp + 0x10], eax
mov eax, ebx
sub eax, esi
mov esi, dword [0x45a318]
imul eax, edi
cdq
idiv ecx
mov ebp, eax
mov eax, dword [esp + 0x48]
sub eax, esi
imul eax, edi
cdq
idiv ecx
mov ebx, eax
mov eax, dword [esp + 0x4c]
sub eax, esi
imul eax, edi
cdq
idiv ecx
mov edx, dword [0x45ae20]
mov esi, eax
cmp edx, 0xa
je 0x4243e8
cmp edx, 0x1e
je 0x424368
cmp edx, 0x28
je 0x424368
xor edi, edi
cmp edx, 0x14
jne 0x42414b
call fcn.004238c0
test eax, eax
jle 0x42414b
sub esi, 0x1f5
cmp esi, 0x26
ja 0x4242a0
sub ebx, 0x1f5
cmp ebx, 0x26
ja 0x4242a0
lea eax, [ebp - 0x3a3]
cmp eax, 0x120
ja 0x4242a0
mov eax, dword [esp + 0x10]
mov edi, 0x63
sub eax, 0x3a3
cmp eax, 0x120
jbe 0x42414b
nop
xor edi, edi
jmp 0x42414b
cmp ebp, 0x64
jle 0x42414b
sub ebp, esi
sub ebp, 0x33
cmp ebp, 0x94
ja 0x42414b
mov edx, dword [0x4583e0]
test edx, edx
je 0x424450
cmp edx, 0xffff
jg 0x424450
sub ecx, 0x26d
xor edi, edi
cmp ecx, 0x4d
ja 0x42414b
sub eax, 0x26d
cmp eax, 0x4d
ja 0x42414b
mov eax, dword [0x45ae9c]
test eax, eax
je 0x424818
mov dword [0x45ae9c], 1
mov edi, 6
jmp 0x42414b
mov edi, dword [0x45a2ec]
test edi, edi
jne 0x4241a6
cmp dword [0x45ae20], 0xa
jne 0x4241a6
lea edx, [ecx - 0x15]
cmp edx, 0x4d
ja 0x424590
sub eax, 0x15
cmp eax, 0x4d
ja 0x42414b
mov edi, 1
jmp 0x42414b
sub esi, 0x8d
cmp esi, 0x26
ja 0x4242a0
sub ebx, 0x8d
cmp ebx, 0x26
ja 0x4242a0
mov edi, dword [0x45ae4c]
cmp edi, 1
jle 0x4244a8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
mov ebx, 0x145
mov ecx, 0
mov dword [esp + 0x14], edx
cmp eax, ebp
mov esi, eax
cmovl eax, ebp
cmovg esi, ebp
mov ebp, eax
jmp 0x4243cb
add ebx, 0x3c
cmp edi, ecx
je 0x4244a0
mov eax, ecx
add ecx, 1
cmp ebx, esi
jge 0x4243c0
lea edx, [ebx + 0x31]
cmp edx, ebp
jl 0x4243c0
lea edi, [eax + 0x5a]
jmp 0x42414b
cmp ebx, 0xa1
mov dword [esp + 0x14], 0x153
setg al
cmp esi, 0xa1
setg cl
xor edx, edx
test al, cl
jne 0x4245b4
add edx, 1
cmp edx, 4
jne 0x42440c
cmp esi, 0x1c3
mov dword [esp + 0x14], 0xfa
mov edx, 4
setg al
cmp ebx, 0x1c3
setg cl
test al, cl
jne 0x424a04
add edx, 1
cmp edx, 9
jne 0x42443b
xor edi, edi
jmp 0x42414b
mov edi, dword [0x45a2ec]
test edi, edi
jne 0x4242e4
cmp dword [0x45ae20], 0xa
jne 0x4242e4
lea edx, [ecx - 0x15]
cmp edx, 0x4d
ja 0x4247a0
sub eax, 0x15
cmp eax, 0x4d
ja 0x42414b
cmp dword [0x45ae9c], 0
je 0x4249d8
mov dword [0x45ae9c], 1
jmp 0x42435b
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
xor edi, edi
cmp edx, 0x28
jne 0x42414b
mov edi, dword [0x45a2dc]
test edi, edi
je 0x42414b
mov eax, dword [0x45a2e8]
xor edi, edi
cmp eax, 5
ja 0x42414b
imul eax, eax, 0x7c
movzx eax, byte [eax + 0x45694d]
and eax, 0xfffffff0
cmp al, 0x60
jne 0x42414b
mov eax, dword [esp + 0x10]
cmp eax, ebp
cmovg eax, ebp
cmp eax, 0x393
jle 0x42414b
mov esi, dword [esp + 0x10]
cmp esi, ebp
cmovl esi, ebp
cmp esi, 0x3c4
jle 0x424d88
cmp eax, 0x3cf
jle 0x42414b
cmp esi, 0x400
jle 0x424d7e
cmp eax, 0x40b
jle 0x42414b
cmp esi, 0x43c
jle 0x424dc5
cmp eax, 0x447
jle 0x42414b
cmp esi, 0x478
jle 0x424dbb
cmp eax, 0x483
jle 0x42414b
cmp esi, 0x4b4
jle 0x424d8f
cmp eax, 0x4bf
jle 0x42414b
mov edx, 5
cmp esi, 0x4f0
jg 0x42414b
lea edi, [edx + 0x64]
jmp 0x42414b
lea edx, [ecx - 0x8d]
cmp edx, 0x4d
ja 0x424846
sub eax, 0x8d
xor edx, edx
cmp eax, 0x4d
setbe dl
lea edi, [edx + edx]
jmp 0x42414b
lea eax, [ebx - 0xec]
mov dword [esp + 0x14], eax
lea eax, [esi - 0xec]
mov dword [esp + 0x18], eax
mov eax, 0x153
jmp 0x424601
cmp esi, 0xc0
jg 0x4245f0
mov ecx, dword [esp + 0x10]
lea edi, [eax - 0xe2]
cmp ecx, ebp
cmovg ecx, ebp
cmp edi, ecx
jl 0x424708
nop
add edx, 1
add eax, 0x127
cmp edx, 4
je 0x424414
cmp ebx, 0xc0
jle 0x4245d0
cmp esi, 0xc6
jle 0x4245f0
cmp ebx, 0xc6
jle 0x4245f0
cmp ebx, 0xe5
jg 0x4246b0
cmp esi, 0xe5
jg 0x4245f0
mov ecx, dword [0x42e2e4]
xor edi, edi
cmp ecx, 6
cmovge ecx, edi
mov edi, dword [esp + 0x10]
cmp edi, ebp
cmovg edi, ebp
imul ecx, ecx, 0x7c
movzx ecx, byte [ecx + 0x45694d]
and ecx, 0xf
cmp cl, 3
je 0x424730
lea ecx, [eax - 0x9c]
cmp edi, ecx
jg 0x424889
lea ecx, [eax - 0x6c]
cmp edi, ecx
jg 0x4248d8
lea ecx, [eax - 0x3c]
cmp edi, ecx
jg 0x4248b0
lea ecx, [eax - 0xc]
cmp edi, ecx
jle 0x4245f0
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov edi, ecx
lea ecx, [eax + 0x1f]
cmp edi, ecx
jge 0x4245f0
mov eax, 3
lea edi, [eax + edx*4 + 0x14]
jmp 0x42414b
cmp dword [esp + 0x14], 0x1e
ja 0x4245f0
cmp dword [esp + 0x18], 0x1e
ja 0x4245f0
mov ecx, dword [esp + 0x10]
lea edi, [eax - 0xa6]
cmp ecx, ebp
cmovg ecx, ebp
cmp edi, ecx
jl 0x4248fc
lea edi, [eax - 0x38]
cmp edi, ecx
jge 0x4245f0
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
cmp ecx, eax
jg 0x4245f0
lea edi, [edx + 0x50]
jmp 0x42414b
mov ecx, dword [esp + 0x10]
lea edi, [eax - 0x98]
cmp ecx, ebp
cmovl ecx, ebp
cmp edi, ecx
jl 0x4245f0
lea edi, [edx + 0xa]
jmp 0x42414b
lea ecx, [eax - 0xe0]
cmp edi, ecx
jg 0x4249b4
lea ecx, [eax - 0xb4]
cmp edi, ecx
jg 0x42498d
lea ecx, [eax - 0x88]
cmp edi, ecx
jg 0x424969
lea ecx, [eax - 0x5c]
cmp edi, ecx
jg 0x424945
lea ecx, [eax - 0x30]
cmp edi, ecx
jg 0x424921
lea ecx, [eax - 4]
cmp edi, ecx
jle 0x4245f0
mov ecx, dword [esp + 0x10]
lea edi, [eax + 0x23]
cmp ecx, ebp
cmovl ecx, ebp
cmp edi, ecx
jle 0x4245f0
mov eax, 5
imul edx, edx, 6
lea edi, [eax + edx + 0x14]
jmp 0x42414b
lea edx, [ecx - 0x105]
cmp edx, 0x4d
jbe 0x4247e9
lea edx, [ecx - 0x1f5]
cmp edx, 0x4d
ja 0x4242e4
sub eax, 0x1f5
cmp eax, 0x4d
ja 0x42414b
cmp dword [0x45ae9c], 0
je 0x424d26
mov dword [0x45ae9c], 1
mov edi, 5
jmp 0x42414b
sub eax, 0x105
cmp eax, 0x4d
ja 0x42414b
cmp dword [0x45ae9c], 0
je 0x424d52
mov dword [0x45ae9c], 1
mov edi, 3
jmp 0x42414b
mov eax, dword [0x45b0dc]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0x101
mov dword [esp], eax
call dword [sym.imp.USER32.dll_PostMessageW]
sub esp, 0x10
jmp 0x424310
lea edx, [ecx - 0x105]
cmp edx, 0x4d
ja 0x424861
sub eax, 0x105
cmp eax, 0x4d
ja 0x42414b
jmp 0x42480e
lea edx, [ecx - 0x17d]
cmp edx, 0x4d
ja 0x424d99
sub eax, 0x17d
xor edx, edx
cmp eax, 0x4d
setbe dl
lea edi, [edx*4]
jmp 0x42414b
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x71]
cmp dword [esp + 0x1c], ecx
jge 0x424668
xor eax, eax
jmp 0x4246a4
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x11]
cmp dword [esp + 0x1c], ecx
jge 0x42467e
mov eax, 2
jmp 0x4246a4
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x41]
cmp dword [esp + 0x1c], ecx
jge 0x424673
mov eax, 1
jmp 0x4246a4
lea edi, [eax - 0x84]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x10]
cmp edi, ebp
cmovl edi, ebp
cmp dword [esp + 0x1c], edi
jl 0x4246dd
lea edi, [edx + 0x46]
jmp 0x42414b
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 9]
cmp dword [esp + 0x1c], ecx
jge 0x424770
mov eax, 4
jmp 0x424794
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x35]
cmp dword [esp + 0x1c], ecx
jge 0x424765
mov eax, 3
jmp 0x424794
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x61]
cmp dword [esp + 0x1c], ecx
jge 0x42475a
mov eax, 2
jmp 0x424794
lea ecx, [eax - 0x8d]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
cmp dword [esp + 0x1c], ecx
jle 0x42474c
mov eax, 1
jmp 0x424794
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0xb9]
cmp dword [esp + 0x1c], ecx
jge 0x42473e
xor eax, eax
jmp 0x424794
mov eax, dword [0x45b0dc]
xor ebx, ebx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0x101
mov dword [esp], eax
call dword [sym.imp.USER32.dll_PostMessageW]
sub esp, 0x10
jmp 0x424490
lea eax, [esi - 0x20e]
mov dword [esp + 0x14], eax
lea eax, [ebx - 0x20e]
mov dword [esp + 0x18], eax
mov eax, 0xfa
jmp 0x424a59
cmp esi, 0x1e2
jg 0x424a48
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
mov edi, ecx
lea ecx, [eax - 0x89]
cmovg edi, ebp
cmp edi, ecx
jg 0x424b50
lea esi, [esi]
add edx, 1
add eax, 0xec
cmp edx, 9
je 0x4242a0
cmp ebx, 0x1e2
jle 0x424a20
cmp ebx, 0x1e8
jle 0x424a48
cmp esi, 0x1e8
jle 0x424a48
cmp ebx, 0x207
jg 0x424af8
cmp esi, 0x207
jg 0x424a48
mov ecx, dword [0x42e2e4]
xor edi, edi
cmp ecx, 6
cmovge ecx, edi
mov edi, dword [esp + 0x10]
cmp edi, ebp
cmovg edi, ebp
imul ecx, ecx, 0x7c
movzx ecx, byte [ecx + 0x45694d]
and ecx, 0xf
cmp cl, 3
je 0x424b70
lea ecx, [eax - 0x48]
cmp edi, ecx
jg 0x424bf0
lea ecx, [eax - 0x24]
cmp edi, ecx
jg 0x424c40
cmp edi, eax
jg 0x424c18
lea ecx, [eax + 0x24]
cmp edi, ecx
jle 0x424a48
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov edi, ecx
lea ecx, [eax + 0x43]
cmp edi, ecx
jge 0x424a48
jmp 0x42469f
cmp dword [esp + 0x14], 0x1e
ja 0x424a48
cmp dword [esp + 0x18], 0x1e
ja 0x424a48
mov ecx, dword [esp + 0x10]
lea edi, [eax - 0x5b]
cmp ecx, ebp
cmovg ecx, ebp
cmp ecx, edi
jg 0x424c5f
lea edi, [eax - 3]
cmp ecx, edi
jle 0x424a48
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov edi, ecx
lea ecx, [eax + 0x29]
cmp edi, ecx
jg 0x424a48
jmp 0x4246f9
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
mov edi, ecx
lea ecx, [eax - 0x51]
cmovl edi, ebp
cmp edi, ecx
jg 0x424a48
jmp 0x42471f
lea ecx, [eax - 0x8a]
cmp ecx, edi
jl 0x424d05
lea ecx, [eax - 0x67]
cmp edi, ecx
jg 0x424ce1
lea ecx, [eax - 0x44]
cmp edi, ecx
jg 0x424cbd
lea ecx, [eax - 0x21]
cmp ecx, edi
jl 0x424ca2
lea ecx, [eax + 2]
cmp ecx, edi
jl 0x424c7e
lea ecx, [eax + 0x25]
cmp edi, ecx
jle 0x424a48
mov ecx, dword [esp + 0x10]
lea edi, [eax + 0x46]
cmp ecx, ebp
cmovl ecx, ebp
cmp edi, ecx
jle 0x424a48
mov eax, 5
imul edx, edx, 6
mov edi, 0x45
lea ecx, [edx + eax]
cmp ecx, 0x30
jg 0x42414b
lea edi, [edx + eax + 0x14]
jmp 0x42414b
lea ecx, [eax - 0x29]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
cmp dword [esp + 0x1c], ecx
jle 0x424ab9
xor eax, eax
jmp 0x4246a4
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax + 0x1f]
cmp dword [esp + 0x1c], ecx
jge 0x424acc
jmp 0x4248ca
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 5]
cmp dword [esp + 0x1c], ecx
jge 0x424ac4
jmp 0x4248f2
lea edi, [eax - 0x41]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x10]
cmp edi, ebp
cmovl edi, ebp
cmp dword [esp + 0x1c], edi
jl 0x424b22
jmp 0x424919
lea ecx, [eax + 0x23]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
cmp dword [esp + 0x1c], ecx
jle 0x424baa
mov eax, 4
jmp 0x424bce
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
cmp eax, ecx
jle 0x424b9f
mov eax, 3
jmp 0x424bce
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x23]
cmp dword [esp + 0x1c], ecx
jge 0x424b94
mov eax, 2
jmp 0x424bce
lea ecx, [eax - 0x46]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
cmp dword [esp + 0x1c], ecx
jle 0x424b89
mov eax, 1
jmp 0x424bce
mov ecx, dword [esp + 0x10]
cmp ecx, ebp
cmovl ecx, ebp
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x69]
cmp dword [esp + 0x1c], ecx
jge 0x424b7e
xor eax, eax
jmp 0x424bce
mov eax, dword [0x45b0dc]
xor edx, edx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], edx
mov dword [esp + 4], 0x101
mov dword [esp], eax
call dword [sym.imp.USER32.dll_PostMessageW]
sub esp, 0x10
jmp 0x4247d5
mov eax, dword [0x45b0dc]
xor ecx, ecx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0x101
mov dword [esp], eax
call dword [sym.imp.USER32.dll_PostMessageW]
sub esp, 0x10
jmp 0x424804
mov edx, 1
jmp 0x424587
xor edx, edx
jmp 0x424587
mov edx, 4
jmp 0x424587
lea edx, [ecx - 0x1f5]
cmp edx, 0x4d
ja 0x4241a6
sub eax, 0x1f5
cmp eax, 0x4d
ja 0x42414b
jmp 0x4247df
mov edx, 3
jmp 0x424587
mov edx, 2
jmp 0x424587