Function at 0x46f5a5
Capabilities:
Parse credit card information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x475280]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xc4], eax
test edi, edi
je 0x470a31
test ebx, ebx
je 0x470a31
test eax, eax
je 0x46f5fb
cmp dword [eax + 8], 0x4c
jb 0x470a31
push 0xa0
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
lea edx, [ebp - 0xa0]
mov ecx, edi
call fcn.0046e9d1
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a1f
cmp byte [ebp - 0xa4], 0
jne 0x470a2d
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x9c]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], esi
mov eax, dword [edi + 0xe4]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0xa8]
cmp eax, 0x30
jle 0x46fc34
cmp eax, 0x4c
jg 0x46f911
je 0x46f921
cmp eax, 0x33
je 0x46f824
cmp eax, 0x3f
jle 0x470a03
cmp eax, 0x41
jle 0x46f6a9
cmp eax, 0x44
jle 0x470a03
cmp eax, 0x46
jg 0x470a03
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x66
je 0x46f7e2
cmp dword [ebp - 0xa8], 0x4b
je 0x46f6f3
cmp dword [ebp - 0xa8], 0x47
jne 0x46f6a9
jmp 0x46f80d
mov dword [ebx], 0xa
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x4b
je 0x46f6f9
cmp dword [ebp - 0xa8], 0x4c
jne 0x46f751
and dword [ebx + 0x2c], 0
and dword [ebx + 0x34], 0
lea edi, [ebx + 0x38]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
jmp 0x46f80d
cmp dword [ebp - 0xa8], 0x4d
jne case.0x46fa3b.92
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x4e
jne case.0x46fa3b.92
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x4c
je 0x46f739
push ecx
push ecx
mov ecx, 0xc000a083
call fcn.004717f2
mov edx, eax
jmp 0x470a03
push ebx
lea edx, [ebp - 0xb8]
mov dword [ebx], 9
mov ecx, edi
call fcn.0046f0a4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebx], 9
je 0x470a03
cmp dword [ebx], 0xa
jne 0x46f5fb
jmp 0x470a03
xor eax, eax
mov dword [ebp - 0xc0], eax
cmp byte [edi + 0xe0], al
je 0x46f852
and dword [ebx], eax
mov dword [ebx + 0x40], 0x14
lea edi, [ebx + 0x28]
mov dword [ebx + 0x38], ecx
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709fa
mov dword [ebx + 0x5c], esi
mov esi, eax
mov dword [ebx], 2
mov dword [ebx + 0x58], ecx
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a2d
cmp byte [ebp - 0xa4], 0
mov eax, dword [ebp - 0xa8]
jne 0x46f8ec
cmp eax, 4
je 0x46f8ec
cmp eax, 0x34
je 0x470a03
cmp eax, 1
je 0x46f8ec
sub eax, 0x37
je 0x46f8de
sub eax, 1
je 0x46f8d9
sub eax, 1
je 0x46f8d4
dec eax
sub eax, 1
jne 0x46f860
test esi, esi
je 0x46f860
mov edi, dword [ebp - 0xc0]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
xor esi, esi
mov dword [ebp - 0xc0], esi
jmp 0x46f860
lea esi, [ebx + 0x38]
jmp 0x46f8e1
lea esi, [ebx + 0x48]
jmp 0x46f8e1
lea esi, [ebx + 0x28]
mov dword [ebp - 0xc0], esi
jmp 0x46f860
cmp eax, 0x34
je 0x470a03
and dword [ebx], 0
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xb8]
mov dword [ebx + 0x40], 0x13
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709f1
cmp eax, 0x4f
je 0x46f921
cmp eax, 0x65
jne 0x470a03
jmp 0x46f957
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
mov eax, dword [ebp - 0xa8]
cmp eax, 0x4f
je 0x46f921
cmp eax, 0x65
jne 0x46f962
mov dword [ebx], 0xc
jmp 0x470a03
and dword [ebx + 0x34], 0
and dword [ebx + 0x2c], 0
cmp eax, 0x51
jne 0x46f9e1
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x52
jne case.0x46fa3b.92
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
mov eax, dword [ebp - 0xa8]
cmp eax, 0x50
jne case.0x46fa3b.92
lea edi, [ebx + 0x38]
mov dword [ebx], 0xb
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
mov eax, dword [ebp - 0xa8]
add eax, 0xffffffad
cmp eax, 0xb
ja case.0x46fa3b.92
jmp dword [eax*4 + 0x470a51]
and dword [ebx + 0x48], 0
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
mov eax, dword [ebp - 0xa8]
mov dword [ebx + 0x5c], 3
sub eax, 0x5f
je 0x46fc2b
sub eax, 1
je 0x46fc1f
sub eax, 1
je 0x46fb9a
sub eax, 1
je 0x46fbc7
jmp case.0x46fa3b.92
mov dword [ebx + 0x48], 1
jmp 0x46fa46
mov dword [ebx + 0x48], 2
jmp 0x46fa46
mov dword [ebx + 0x48], 3
jmp 0x46fa46
mov dword [ebx + 0x48], 4
jmp 0x46fa46
mov dword [ebx + 0x48], 5
jmp 0x46fa46
mov dword [ebx + 0x48], 6
jmp 0x46fa46
mov dword [ebx + 0x48], 7
jmp 0x46fa46
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x5c
jne case.0x46fa3b.94
mov dword [ebx + 0x48], 9
lea edi, [ebx + 0x4c]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
je 0x46fa46
jmp 0x470a03
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x5c
jne case.0x46fa3b.92
mov dword [ebx + 0x48], 8
jmp 0x46fb20
push 1
lea edx, [ebp - 0xb8]
mov dword [ebx + 0x5c], 2
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xa4], 0
jne 0x470a03
cmp dword [ebp - 0xa8], 0x63
jne case.0x46fa3b.92
mov ecx, dword [ebp - 0xbc]
lea edi, [ebx + 0x60]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0046d8f4
jmp 0x46f7db
mov dword [ebx + 0x5c], 1
jmp 0x470a03
and dword [ebx + 0x5c], 0
jmp 0x470a03
je 0x470986
dec eax
sub eax, 1
je 0x470912
dec eax
sub eax, 1
je 0x4708ef
sub eax, 1
je 0x470079
sub eax, 0x1d
je 0x46fd93
sub eax, 6
je 0x46fcce
sub eax, 5
jne 0x470a03
lea eax, [ebp - 0xdc]
mov ecx, edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0x40f6d0
push 2
pop edx
call fcn.0046ee34
mov ecx, dword [ebp - 0xdc]
mov edx, eax
test edx, edx
js 0x46fcae
cmp ecx, 2
jne 0x46fcae
mov dword [ebx], 0xd
lea esi, [ebp - 0x38]
lea edi, [ebx + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709f1
and dword [ebx], 0
lea esi, [ebp - 0x38]
imul eax, ecx, 0x18
lea edi, [ebx + 0x28]
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f6d4]
jmp 0x4709ee
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x46fd8a
cmp byte [ebp - 0xa4], 0
jne 0x46fd8a
cmp dword [ebp - 0xa8], 0x2a
jne 0x46fd8a
mov eax, dword [ebp - 0xa0]
lea edi, [ebx + 0x28]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx], 5
mov dword [ebx + 0x4c], eax
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xbc]
lea edx, [ebp - 0xb8]
push 1
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x46fd81
cmp byte [ebp - 0xa4], 0
jne 0x46fd81
cmp dword [ebp - 0xa8], 0x2b
jne 0x46fd56
lea edi, [ebx + 0x38]
jmp 0x46fd1c
cmp dword [ebp - 0xa8], 0x29
je 0x470a03
cmp dword [ebp - 0xa8], 4
jne 0x46fd26
mov dword [ebx + 0x40], 0x11
and dword [ebx], 0
lea esi, [ebp - 0xb8]
jmp 0x46fca2
mov dword [ebx + 0x40], 0x10
jmp 0x46fd73
mov dword [ebx + 0x40], 0x12
jmp 0x46fd73
and dword [ebp - 0xc4], 0
lea eax, [ebp - 0xc4]
dec dword [edi + 0xe4]
lea ecx, [edi + 0xe8]
mov edx, dword [edi + 0xe4]
push 0
push eax
call fcn.00470e7b
test eax, eax
js 0x470a3d
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x47005d
cmp byte [ebp - 0xa4], 0
jne 0x47005d
cmp dword [ebp - 0xa8], 0x23
je 0x46fdfe
cmp dword [ebp - 0xa8], 0x26
jne 0x47005d
cmp dword [ebp - 0xa8], 0x26
jne 0x46fe95
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x48]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xbc]
mov ecx, esi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x46fe79
cmp byte [ebp - 0xa4], 0
jne 0x46fe79
cmp dword [ebp - 0xa8], 0x27
jne 0x46fe79
push 1
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x46fe79
cmp byte [ebp - 0xa4], 0
jne 0x46fe79
cmp dword [ebp - 0xa8], 0x23
je 0x46fe95
and dword [ebx], 0
lea esi, [ebp - 0xb8]
lea edi, [ebx + 0x28]
mov dword [ebx + 0x40], 7
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709f1
mov eax, dword [ebp - 0xa0]
lea edi, [ebx + 0x38]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
push 0x10
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xc4]
lea edi, [ebx + 0x60]
add esi, 0x28
rep movsd dword es:[edi], dword [esi]
dec dword [ebx + 4]
mov edi, dword [ebp - 0xbc]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x5c], eax
mov dword [ebx], 4
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x47002d
cmp byte [ebp - 0xa4], 0
jne 0x47002d
cmp dword [ebp - 0xa8], 4
je 0x47002d
cmp dword [ebp - 0xa8], 0x25
jne 0x46fed4
mov esi, dword [ebp - 0xcc]
test esi, esi
je 0x46ffaf
mov eax, dword [ebp - 0xc4]
lea edi, [ebp - 0x104]
and dword [ebp - 0xd4], 0
xor edx, edx
mov ecx, dword [eax + 4]
xor eax, eax
stosd dword es:[edi], eax
inc ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0xd4]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.0046efb0
mov edx, eax
cmp edx, 0xc000a083
jne 0x46ff86
mov eax, dword [ebp - 0xd4]
lea esi, [ebp - 0x104]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0xa0]
lea ecx, [ebx + 0x38]
mov dword [ecx], eax
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 4], eax
jmp 0x470964
test edx, edx
js 0x470a03
mov eax, dword [ebp - 0xc4]
mov ecx, esi
mov edx, dword [eax + 4]
inc edx
call fcn.0047127c
mov edx, eax
test edx, edx
js 0x470a03
mov edi, dword [ebp - 0xbc]
mov esi, dword [edi + 0xc0]
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebx + 0x38]
push ecx
lea eax, [ebx + 0x60]
mov ecx, esi
push eax
push edi
call dword [0x47744c]
call esi
mov edx, eax
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x47000e
test edx, edx
js 0x470a03
mov esi, dword [edi + 0xc0]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebx + 0x48]
mov ecx, esi
push eax
lea eax, [ebx + 0x80]
push eax
push edi
call dword [0x47744c]
call esi
mov edx, eax
mov eax, dword [ebp - 0xcc]
test edx, edx
js 0x470a03
test eax, eax
je 0x470a03
lea esi, [ebx + 0x10]
mov dword [ebx + 0x40], 0x1c
jmp 0x46ff6d
mov eax, dword [ebp - 0xa0]
lea edi, [ebx + 0x28]
and dword [ebx], 0
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 0x38]
mov dword [ecx], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x40], 6
movsd dword es:[edi], dword [esi]
mov dword [ecx + 4], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x470a03
and dword [ebx], 0
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xb8]
mov dword [ebx + 0x40], 8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709f1
mov al, byte [edi + 0xe0]
test al, al
je 0x4700ad
cmp dword [edi + 0xe4], 0
jne 0x4700ad
lea esi, [ebp - 0xb8]
mov dword [ebx + 0x40], 0x1d
mov dword [ebx + 0x38], ecx
and dword [ebx], 0
lea edi, [ebx + 0x28]
movsd dword es:[edi], dword [esi]
xor edx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709fa
and dword [ebp - 0xc8], 0
and dword [ebp - 0xdc], 0
test al, al
jne 0x4700c6
mov byte [edi + 0xe0], 1
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x47018d
cmp byte [ebp - 0xa4], 0
jne 0x47018d
mov eax, dword [ebp - 0xa8]
cmp eax, 6
je 0x470100
cmp eax, 0x16
jne 0x47018d
cmp dword [ebp - 0xa8], 0x16
mov eax, dword [ebp - 0xa0]
mov dword [ebx], 3
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x5c], esi
jne 0x4701a5
lea edi, [ebx + 0x38]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xb8]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x48]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xbc]
mov ecx, esi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x470199
cmp byte [ebp - 0xa4], 0
jne 0x470199
cmp dword [ebp - 0xa8], 0x17
jne 0x470199
push 1
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x47018d
cmp byte [ebp - 0xa4], 0
jne 0x47018d
cmp dword [ebp - 0xa8], 6
je 0x4701a5
mov dword [ebx + 0x40], 4
jmp 0x46fd73
mov dword [ebx + 0x40], 5
jmp 0x46fd73
mov eax, dword [ebp - 0x9c]
lea edi, [ebx + 0x28]
and dword [ebx + 0x60], 0
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xe0], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0xf4], edi
mov esi, dword [ebp - 0xbc]
test edx, edx
js 0x47020f
push 0
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046d8f4
mov edx, eax
test edx, edx
js 0x47020f
lea edx, [ebp - 0xa0]
mov ecx, esi
call fcn.0046e9d1
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046ea0e
mov edi, dword [ebp - 0xa0]
mov edx, eax
mov eax, dword [ebp - 0xa8]
cmp eax, 0x1a
je 0x4707ea
cmp eax, 0x1b
je 0x4707ea
cmp eax, 4
je 0x4707ea
cmp byte [ebp - 0xa4], 0
jne 0x470a03
test edx, edx
js 0x470a03
sub eax, 7
je 0x470539
sub eax, 1
je 0x47046b
sub eax, 7
je 0x4703d0
sub eax, 9
je 0x470320
sub eax, 4
jne 0x4701ce
lea eax, [ebp - 0xe4]
mov ecx, esi
push eax
lea eax, [ebp - 0x68]
push eax
push 0x40f6e8
push 4
pop edx
call fcn.0046ee34
mov edx, eax
test edx, edx
js 0x470680
mov ecx, dword [ebp - 0xe4]
cmp ecx, 4
jne 0x470654
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4703c8
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.00470e7b
mov dword [ebp - 0xc0], eax
test eax, eax
js 0x470a3d
mov ebx, dword [ebp - 0xc8]
push 0x4c
push 0
push ebx
call sub.msvcrt.dll_memset
mov edi, ebx
mov eax, dword [ebp - 0x9c]
lea esi, [ebp - 0xb8]
mov edx, dword [ebp - 0xc0]
add esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x20]
lea esi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa0]
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x44], eax
mov ebx, dword [ebp - 0xd4]
jmp 0x4703c8
lea eax, [ebp - 0xe8]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
push 0x40f688
push 6
pop edx
call fcn.0046ee34
mov edx, eax
test edx, edx
js 0x4706c7
mov ecx, dword [ebp - 0xe8]
cmp ecx, 6
jne 0x470698
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4703c8
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.00470e7b
mov edx, eax
test edx, edx
js 0x470a2d
mov eax, dword [ebp - 0xc8]
lea esi, [ebp - 0x80]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x10]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x30]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x20]
lea esi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov word [eax + 0x48], 0
mov edi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x40], edi
mov dword [eax + 0x44], ecx
inc dword [ebx + 0x60]
jmp 0x4701ce
lea eax, [ebp - 0xec]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
push 0x40f628
push 6
pop edx
call fcn.0046ee34
mov edx, eax
test edx, edx
js 0x470711
mov ecx, dword [ebp - 0xec]
cmp ecx, 6
jne 0x4706e5
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4703c8
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.00470e7b
mov edx, eax
test edx, edx
js 0x470a2d
mov eax, dword [ebp - 0xc8]
lea esi, [ebp - 0x80]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x10]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x30]
lea esi, [ebp - 0xb8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x20]
lea esi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov word [eax + 0x48], 0x100
jmp 0x4703b6
lea eax, [ebp - 0xd8]
mov ecx, esi
push eax
lea eax, [ebp - 0x68]
push eax
push 0x40f5e0
push 4
pop edx
call fcn.0046ee34
mov edx, eax
mov dword [ebp - 0xc0], edx
test edx, edx
js 0x470767
mov ecx, dword [ebp - 0xd8]
cmp ecx, 4
jne 0x470738
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x4704d9
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x38]
push ecx
inc edx
mov ecx, eax
call fcn.00471108
mov edx, eax
mov dword [ebp - 0xc0], edx
cmp edx, 0xc00000bd
je 0x470726
test edx, edx
js 0x470a2d
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x470646
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.00470e7b
mov dword [ebp - 0xc0], eax
test eax, eax
js 0x470a3d
mov ebx, dword [ebp - 0xc8]
push 0x4c
push 0
push ebx
call sub.msvcrt.dll_memset
mov word [ebx + 0x48], 1
lea esi, [ebp - 0xb8]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x20]
lea esi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x470623
mov ecx, dword [ebp - 0xbc]
lea esi, [ebp - 0xb8]
lea edi, [ebp - 0x104]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x98]
push eax
movsd dword es:[edi], dword [esi]
push 0x40f760
push 6
pop edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0046ee34
mov edx, eax
mov dword [ebp - 0xc0], edx
test edx, edx
js 0x4707e5
mov ecx, dword [ebp - 0xf0]
cmp ecx, 6
jne 0x4707b0
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x4705c2
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x38]
inc edx
push ecx
mov ecx, eax
call fcn.00470f9f
mov edx, eax
mov dword [ebp - 0xc0], edx
cmp edx, 0xc00000bd
je 0x470795
test edx, edx
js 0x470a2d
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x470640
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.00470e7b
mov dword [ebp - 0xc0], eax
test eax, eax
js 0x470a3d
mov ebx, dword [ebp - 0xc8]
push 0x4c
push 0
push ebx
call sub.msvcrt.dll_memset
mov edi, ebx
lea esi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x30]
lea esi, [ebp - 0x104]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x20]
lea esi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov word [ebx + 0x48], 1
mov edi, dword [ebp - 0xa0]
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x44], eax
mov ebx, dword [ebp - 0xd4]
jmp 0x470646
mov edi, dword [ebp - 0xa0]
inc dword [ebx + 0x60]
mov edx, dword [ebp - 0xc0]
jmp 0x4701ce
mov eax, dword [ebp - 0x9c]
lea esi, [ebp - 0x68]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, ecx, 0x18
mov dword [ebx + 0x38], edi
lea edi, [ebx + 0x28]
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f6ec]
jmp 0x47075f
mov eax, dword [ebp - 0x9c]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xe4], 0x18
jmp 0x47077a
mov eax, dword [ebp - 0x9c]
lea esi, [ebp - 0x98]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, ecx, 0x18
mov dword [ebx + 0x38], edi
lea edi, [ebx + 0x28]
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f68c]
jmp 0x47075f
mov eax, dword [ebp - 0x9c]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xe8], 0x18
lea esi, [ebp - 0x98]
jmp 0x47077d
mov eax, dword [ebp - 0x9c]
lea esi, [ebp - 0x98]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, ecx, 0x18
mov dword [ebx + 0x38], edi
lea edi, [ebx + 0x28]
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f62c]
jmp 0x47075f
mov eax, dword [ebp - 0x9c]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xec], 0x18
jmp 0x4706da
mov dword [ebx + 0x38], edi
lea esi, [ebp - 0x38]
mov dword [ebx + 0x40], 0x1f
jmp 0x47009c
mov eax, dword [ebp - 0x9c]
lea esi, [ebp - 0x68]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, ecx, 0x18
mov dword [ebx + 0x38], edi
lea edi, [ebx + 0x28]
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f5e4]
mov dword [ebx + 0x40], eax
jmp 0x470a03
mov eax, dword [ebp - 0x9c]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xd8], 0x18
lea esi, [ebp - 0x68]
add esi, eax
mov dword [ebx + 0x38], edi
lea edi, [ebx + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x40], 0xb
jmp 0x470a03
and dword [ebx], 0
lea esi, [ebp - 0x80]
lea edi, [ebx + 0x28]
mov dword [ebx + 0x40], 0x1e
movsd dword es:[edi], dword [esi]
xor edx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x4709f1
mov eax, dword [ebp - 0xa0]
lea esi, [ebp - 0x98]
and dword [ebx], 0
lea edi, [ebx + 0x28]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], eax
imul eax, ecx, 0x18
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f764]
jmp 0x47075f
and dword [ebx], 0
jmp 0x470789
cmp byte [ebp - 0xa4], 0
jne 0x470a03
test edx, edx
js 0x470a03
mov ecx, dword [ebp - 0xcc]
lea edi, [ebp - 0x104]
xor eax, eax
xor esi, esi
stosd dword es:[edi], eax
mov dword [ebp - 0xd8], esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
test ecx, ecx
je 0x47084a
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x104]
push edx
lea edx, [ebp - 0xd8]
inc eax
push edx
mov edx, dword [ebp - 0xc4]
push eax
push ebx
call fcn.0046efb0
mov esi, dword [ebp - 0xd8]
mov edx, eax
mov ecx, dword [ebp - 0xcc]
cmp edx, 0xc000a083
jne 0x47087b
mov eax, dword [ebp - 0xf4]
lea edi, [ebx + 0x28]
and dword [ebx], 0
xor edx, edx
mov dword [ebx + 0x40], esi
lea esi, [ebp - 0x104]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0xe0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x470a00
test edx, edx
js 0x470a2d
cmp dword [ebp - 0xa8], 0x1b
jne 0x4708b0
mov byte [ebx + 0x64], 1
test ecx, ecx
je 0x470a03
mov edx, dword [ebx + 4]
inc edx
call fcn.0047127c
mov edx, eax
test edx, edx
jns 0x470a03
jmp 0x470a2d
mov edi, dword [ebp - 0xbc]
lea eax, [ebp - 0xdc]
mov edx, dword [ebx + 4]
push 1
push eax
lea ecx, [edi + 0xe8]
call fcn.00470e7b
mov edx, eax
test edx, edx
js 0x470a2d
inc dword [edi + 0xe4]
mov esi, ebx
mov edi, dword [ebp - 0xdc]
push 0x28
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x470a03
cmp dword [edi + 0xe4], 0
jne 0x470903
mov dword [ebx], 1
jmp 0x470a03
and dword [ebx], 0
mov dword [ebx + 0x40], 9
jmp 0x46f83d
cmp byte [edi + 0xe0], 0
je 0x47097b
cmp dword [edi + 0xe4], 0
jne 0x47097b
lea eax, [ebp - 0xcd]
mov ecx, edi
push eax
lea edx, [ebp - 0xb8]
call fcn.0046eda0
mov edx, eax
test edx, edx
js 0x470a03
cmp byte [ebp - 0xcd], 0
jne 0x470975
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], esi
lea esi, [ebp - 0xb8]
mov dword [ebx + 0x40], 0x1d
and dword [ebx], 0
lea edi, [ebx + 0x28]
movsd dword es:[edi], dword [esi]
xor edx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x470a03
mov ecx, dword [ebp - 0xa0]
mov dword [ebx], 7
jmp 0x46f83d
cmp byte [edi + 0xe0], 0
je 0x47099d
cmp dword [edi + 0xe4], 0
jne 0x47099d
mov dword [ebx + 0x38], ecx
jmp 0x470954
lea eax, [ebp - 0xe0]
mov ecx, edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0x40f670
push 2
pop edx
call fcn.0046ee34
mov ecx, dword [ebp - 0xe0]
mov edx, eax
test edx, edx
js 0x4709d3
cmp ecx, 2
jne 0x4709d3
mov dword [ebx], 8
jmp 0x46fc9f
and dword [ebx], 0
lea esi, [ebp - 0x38]
imul eax, ecx, 0x18
lea edi, [ebx + 0x28]
add esi, eax
imul eax, ecx, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x40f674]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x14]
sub eax, dword [ebx + 0x10]
cmp byte [ebp - 0xa4], 0
mov dword [ebx + 0x14], eax
je 0x470a2d
test edx, edx
js 0x470a2d
push ecx
push ecx
mov ecx, 0xc000a083
call fcn.004717f2
mov edx, eax
mov eax, edx
jmp 0x470a3d
push ecx
push ecx
mov ecx, 0xc000000d
call fcn.004717f2
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00471d10
leave
ret 8