Function at 0x4142d0
Capabilities:
Parse credit card information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xf4
mov eax, dword [0x41f0a0]
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], ebx
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xc4], eax
test edi, edi
je 0x415548
test ebx, ebx
je 0x415548
test eax, eax
je 0x414320
cmp dword [eax + 8], 0x4c
jb 0x415548
push 0xa0
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
lea edx, [ebp - 0xa0]
mov ecx, edi
call fcn.00418701
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x415536
cmp byte [ebp - 0xa8], 0
jne 0x415544
mov eax, dword [ebp - 0xbc]
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 - 0xac]
cmp eax, 0x30
jle 0x414959
cmp eax, 0x4c
jg 0x414636
je 0x414646
cmp eax, 0x33
je 0x414549
cmp eax, 0x3f
jle 0x41551a
cmp eax, 0x41
jle 0x4143ce
cmp eax, 0x44
jle 0x41551a
cmp eax, 0x46
jg 0x41551a
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x66
je 0x414507
invalid
cmp dword [ebp - 0xac], 0x4b
je 0x414418
cmp dword [ebp - 0xac], 0x47
jne 0x4143ce
jmp 0x414532
mov dword [ebx], 0xa
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x4b
je 0x41441e
cmp dword [ebp - 0xac], 0x4c
jne 0x414476
and dword [ebx + 0x2c], 0
and dword [ebx + 0x34], 0
lea edi, [ebx + 0x38]
lea esi, [ebp - 0xbc]
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 - 0xa4]
jmp 0x414532
cmp dword [ebp - 0xac], 0x4d
jne case.0x414760.92
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa4]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x4e
jne case.0x414760.92
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x4c
je 0x41445e
push ecx
push ecx
mov ecx, 0xc000a083
call fcn.00415598
mov edx, eax
jmp 0x41551a
push ebx
lea edx, [ebp - 0xbc]
mov dword [ebx], 9
mov ecx, edi
call fcn.00413dd0
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebx], 9
je 0x41551a
cmp dword [ebx], 0xa
jne 0x414320
jmp 0x41551a
xor eax, eax
mov dword [ebp - 0xc0], eax
cmp byte [edi + 0xe0], al
je 0x414577
and dword [ebx], eax
mov dword [ebx + 0x40], 0x14
lea edi, [ebx + 0x28]
mov dword [ebx + 0x38], ecx
lea esi, [ebp - 0xbc]
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 0x415511
mov dword [ebx + 0x5c], esi
mov esi, eax
mov dword [ebx], 2
mov dword [ebx + 0x58], ecx
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x415544
cmp byte [ebp - 0xa8], 0
mov eax, dword [ebp - 0xac]
jne 0x414611
cmp eax, 4
je 0x414611
cmp eax, 0x34
je 0x41551a
cmp eax, 1
je 0x414611
sub eax, 0x37
je 0x414603
sub eax, 1
je 0x4145fe
sub eax, 1
je 0x4145f9
dec eax
sub eax, 1
jne 0x414585
test esi, esi
je 0x414585
mov edi, dword [ebp - 0xc0]
lea esi, [ebp - 0xbc]
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 - 0xa4]
xor esi, esi
mov dword [ebp - 0xc0], esi
jmp 0x414585
lea esi, [ebx + 0x38]
jmp 0x414606
lea esi, [ebx + 0x48]
jmp 0x414606
lea esi, [ebx + 0x28]
mov dword [ebp - 0xc0], esi
jmp 0x414585
cmp eax, 0x34
je 0x41551a
and dword [ebx], 0
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
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 0x415508
cmp eax, 0x4f
je 0x414646
cmp eax, 0x65
jne 0x41551a
jmp 0x41467c
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
mov eax, dword [ebp - 0xac]
cmp eax, 0x4f
je 0x414646
cmp eax, 0x65
jne 0x414687
mov dword [ebx], 0xc
jmp 0x41551a
and dword [ebx + 0x34], 0
and dword [ebx + 0x2c], 0
cmp eax, 0x51
jne 0x414706
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa4]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x52
jne case.0x414760.92
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
mov eax, dword [ebp - 0xac]
cmp eax, 0x50
jne case.0x414760.92
lea edi, [ebx + 0x38]
mov dword [ebx], 0xb
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa4]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
mov eax, dword [ebp - 0xac]
add eax, 0xffffffad
cmp eax, 0xb
ja case.0x414760.92
jmp dword [eax*4 + 0x415568]
and dword [ebx + 0x48], 0
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
mov eax, dword [ebp - 0xac]
mov dword [ebx + 0x5c], 3
sub eax, 0x5f
je 0x414950
sub eax, 1
je 0x414944
sub eax, 1
je 0x4148bf
sub eax, 1
je 0x4148ec
jmp case.0x414760.92
mov dword [ebx + 0x48], 1
jmp 0x41476b
mov dword [ebx + 0x48], 2
jmp 0x41476b
mov dword [ebx + 0x48], 3
jmp 0x41476b
mov dword [ebx + 0x48], 4
jmp 0x41476b
mov dword [ebx + 0x48], 5
jmp 0x41476b
mov dword [ebx + 0x48], 6
jmp 0x41476b
mov dword [ebx + 0x48], 7
jmp 0x41476b
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x5c
jne case.0x414760.94
mov dword [ebx + 0x48], 9
lea edi, [ebx + 0x4c]
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa4]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
je 0x41476b
jmp 0x41551a
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x5c
jne case.0x414760.92
mov dword [ebx + 0x48], 8
jmp 0x414845
push 1
lea edx, [ebp - 0xbc]
mov dword [ebx + 0x5c], 2
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xa8], 0
jne 0x41551a
cmp dword [ebp - 0xac], 0x63
jne case.0x414760.92
mov ecx, dword [ebp - 0xa4]
lea edi, [ebx + 0x60]
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00417624
jmp 0x414500
mov dword [ebx + 0x5c], 1
jmp 0x41551a
and dword [ebx + 0x5c], 0
jmp 0x41551a
je 0x41549d
dec eax
sub eax, 1
je 0x415429
dec eax
sub eax, 1
je 0x415406
sub eax, 1
je 0x414d12
sub eax, 0x1d
je 0x414ab8
sub eax, 6
je 0x4149f3
sub eax, 5
jne 0x41551a
lea eax, [ebp - 0xd0]
mov ecx, edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0x4097a0
push 2
pop edx
call fcn.00413c42
mov ecx, dword [ebp - 0xd0]
mov edx, eax
test edx, edx
js 0x4149d3
cmp ecx, 2
jne 0x4149d3
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 0x415508
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 + 0x4097a4]
jmp 0x415505
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414aaf
cmp byte [ebp - 0xa8], 0
jne 0x414aaf
cmp dword [ebp - 0xac], 0x2a
jne 0x414aaf
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 - 0xbc]
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 - 0xa4]
lea edx, [ebp - 0xbc]
push 1
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414aa6
cmp byte [ebp - 0xa8], 0
jne 0x414aa6
cmp dword [ebp - 0xac], 0x2b
jne 0x414a7b
lea edi, [ebx + 0x38]
jmp 0x414a41
cmp dword [ebp - 0xac], 0x29
je 0x41551a
cmp dword [ebp - 0xac], 4
jne 0x414a4b
mov dword [ebx + 0x40], 0x11
and dword [ebx], 0
lea esi, [ebp - 0xbc]
jmp 0x4149c7
mov dword [ebx + 0x40], 0x10
jmp 0x414a98
mov dword [ebx + 0x40], 0x12
jmp 0x414a98
xor esi, esi
lea eax, [ebp - 0xcc]
dec dword [edi + 0xe4]
lea ecx, [edi + 0xe8]
mov edx, dword [edi + 0xe4]
push esi
push eax
mov dword [ebp - 0xcc], esi
call fcn.00413ae6
test eax, eax
js 0x415554
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414cf7
cmp byte [ebp - 0xa8], 0
jne 0x414cf7
cmp dword [ebp - 0xac], 0x23
je 0x414b23
cmp dword [ebp - 0xac], 0x26
jne 0x414cf7
cmp dword [ebp - 0xac], 0x26
jne 0x414bba
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
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 - 0xbc]
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 - 0xa4]
mov ecx, esi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414b9e
cmp byte [ebp - 0xa8], 0
jne 0x414b9e
cmp dword [ebp - 0xac], 0x27
jne 0x414b9e
push 1
lea edx, [ebp - 0xbc]
mov ecx, esi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414b9e
cmp byte [ebp - 0xa8], 0
jne 0x414b9e
cmp dword [ebp - 0xac], 0x23
je 0x414bba
and dword [ebx], 0
lea esi, [ebp - 0xbc]
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 0x415508
mov eax, dword [ebp - 0xa0]
lea edi, [ebx + 0x38]
lea esi, [ebp - 0xbc]
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 - 0xcc]
lea edi, [ebx + 0x60]
add esi, 0x28
rep movsd dword es:[edi], dword [esi]
dec dword [ebx + 4]
mov edi, dword [ebp - 0xa4]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x5c], eax
mov dword [ebx], 4
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414cc7
cmp byte [ebp - 0xa8], 0
jne 0x414cc7
cmp dword [ebp - 0xac], 4
je 0x414cc7
cmp dword [ebp - 0xac], 0x25
jne 0x414bf9
mov esi, dword [edi + 0xc0]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebx + 0x38]
mov ecx, esi
push eax
lea eax, [ebx + 0x60]
push eax
push edi
call dword [0x420210]
call esi
mov edx, eax
mov eax, dword [ebp - 0xc4]
test eax, eax
jne 0x414c94
test edx, edx
js 0x41551a
mov esi, dword [edi + 0xc0]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebx + 0x48]
mov ecx, esi
push eax
lea eax, [ebx + 0x80]
push eax
push edi
call dword [0x420210]
call esi
mov edx, eax
mov eax, dword [ebp - 0xc4]
test edx, edx
js 0x41551a
test eax, eax
je 0x41551a
mov eax, dword [ebp - 0xa0]
lea ecx, [ebx + 0x38]
mov dword [ecx], eax
lea esi, [ebx + 0x10]
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x40], 0x1c
mov dword [ecx + 4], eax
jmp 0x41547b
mov eax, dword [ebp - 0xa0]
lea edi, [ebx + 0x28]
and dword [ebx], 0
lea esi, [ebp - 0xbc]
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 0x41551a
mov dword [ebx], esi
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
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 0x415508
mov al, byte [edi + 0xe0]
test al, al
je 0x414d46
cmp dword [edi + 0xe4], 0
jne 0x414d46
and dword [ebx], 0
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
mov dword [ebx + 0x40], 0x1d
movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebx + 0x38], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x415511
and dword [ebp - 0xc0], 0
and dword [ebp - 0xd0], 0
test al, al
jne 0x414d5f
mov byte [edi + 0xe0], 1
push 1
lea edx, [ebp - 0xbc]
mov ecx, edi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414e28
cmp byte [ebp - 0xa8], 0
jne 0x414e28
cmp dword [ebp - 0xac], 6
je 0x414d9b
cmp dword [ebp - 0xac], 0x16
jne 0x414e28
cmp dword [ebp - 0xac], 0x16
mov eax, dword [ebp - 0xa0]
mov dword [ebx], 3
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x5c], esi
jne 0x414e40
lea edi, [ebx + 0x38]
lea esi, [ebp - 0xbc]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xbc]
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 - 0xbc]
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 - 0xa4]
mov ecx, esi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414e34
cmp byte [ebp - 0xa8], 0
jne 0x414e34
cmp dword [ebp - 0xac], 0x17
jne 0x414e34
push 1
lea edx, [ebp - 0xbc]
mov ecx, esi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414e28
cmp byte [ebp - 0xa8], 0
jne 0x414e28
cmp dword [ebp - 0xac], 6
je 0x414e40
mov dword [ebx + 0x40], 4
jmp 0x414a98
mov dword [ebx + 0x40], 5
jmp 0x414a98
and dword [ebx + 0x60], 0
lea edi, [ebx + 0x28]
lea esi, [ebp - 0xbc]
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 - 0xa4]
push 0
lea edx, [ebp - 0xbc]
mov ecx, esi
call fcn.00417624
mov edx, eax
test edx, edx
js 0x414e88
lea edx, [ebp - 0xa0]
mov ecx, esi
call fcn.00418701
lea edx, [ebp - 0xbc]
mov ecx, esi
call fcn.0041873e
mov edx, eax
mov eax, dword [ebp - 0xac]
cmp eax, 0x1a
je 0x4153a4
cmp eax, 0x1b
je 0x4153a4
cmp eax, 4
je 0x4153a4
cmp byte [ebp - 0xa8], 0
jne 0x41551a
test edx, edx
js 0x41551a
sub eax, 7
je 0x415135
sub eax, 1
je 0x4150be
sub eax, 7
je 0x415021
sub eax, 9
je 0x414f72
sub eax, 4
jne 0x414e57
lea eax, [ebp - 0xd8]
mov ecx, esi
push eax
lea eax, [ebp - 0x68]
push eax
push 0x4097c0
push 4
pop edx
call fcn.00413c42
mov edx, eax
test edx, edx
js 0x415237
mov ecx, dword [ebp - 0xd8]
cmp ecx, 4
jne 0x415205
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4151fd
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc0]
push 1
push ecx
mov ecx, eax
call fcn.00413ae6
test eax, eax
js 0x415554
mov ebx, dword [ebp - 0xc0]
push 0x4c
push 0
push ebx
call sub.msvcrt.dll_memset
mov edi, ebx
lea esi, [ebp - 0xbc]
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 0x4151dc
lea eax, [ebp - 0xdc]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
push 0x409750
push 6
pop edx
call fcn.00413c42
mov edx, eax
test edx, edx
js 0x41528d
mov ecx, dword [ebp - 0xdc]
cmp ecx, 6
jne 0x415258
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4151fd
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc0]
push 1
push ecx
mov ecx, eax
call fcn.00413ae6
test eax, eax
js 0x415554
mov eax, dword [ebp - 0xc0]
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 - 0xbc]
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 - 0xbc]
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 ecx, dword [ebp - 0xa0]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x44], ecx
jmp 0x4151f7
lea eax, [ebp - 0xe0]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
push 0x4096e0
push 6
pop edx
call fcn.00413c42
mov edx, eax
test edx, edx
js 0x4152e6
mov ecx, dword [ebp - 0xe0]
cmp ecx, 6
jne 0x4152b4
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4151fd
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc0]
push 1
push ecx
mov ecx, eax
call fcn.00413ae6
test eax, eax
js 0x415554
mov eax, dword [ebp - 0xc0]
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 - 0xbc]
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 - 0xbc]
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 0x41500a
lea eax, [ebp - 0xe4]
mov ecx, esi
push eax
lea eax, [ebp - 0x68]
push eax
push 0x409690
push 4
pop edx
call fcn.00413c42
mov edx, eax
test edx, edx
js 0x415339
mov ecx, dword [ebp - 0xe4]
cmp ecx, 4
jne 0x415304
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4151fd
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc0]
push 1
push ecx
mov ecx, eax
call fcn.00413ae6
test eax, eax
js 0x415554
mov ebx, dword [ebp - 0xc0]
push 0x4c
push 0
push ebx
call sub.msvcrt.dll_memset
mov word [ebx + 0x48], 1
jmp 0x414f57
lea esi, [ebp - 0xbc]
lea edi, [ebp - 0xf4]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x98]
push eax
movsd dword es:[edi], dword [esi]
push 0x409840
push 6
pop edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xa4]
mov ecx, esi
call fcn.00413c42
mov edx, eax
test edx, edx
js 0x41539f
mov ecx, dword [ebp - 0xd4]
cmp ecx, 6
jne 0x41536d
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4151fd
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc0]
push 1
push ecx
mov ecx, eax
call fcn.00413ae6
test eax, eax
js 0x415554
mov ebx, dword [ebp - 0xc0]
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 - 0xf4]
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 eax, dword [ebp - 0xa0]
add esp, 0xc
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x44], eax
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xa4]
inc dword [ebx + 0x60]
jmp 0x414e57
mov eax, dword [ebp - 0xa0]
lea esi, [ebp - 0x68]
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 + 0x4097c4]
jmp 0x415331
mov eax, dword [ebp - 0xa0]
and dword [ebx], 0
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xd8], 0x18
jmp 0x415355
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 + 0x409754]
jmp 0x415331
mov eax, dword [ebp - 0xa0]
and dword [ebx], 0
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xdc], 0x18
lea esi, [ebp - 0x98]
jmp 0x415358
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 + 0x4096e4]
jmp 0x415331
mov eax, dword [ebp - 0xa0]
and dword [ebx], 0
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xe0], 0x18
jmp 0x4152a9
mov eax, dword [ebp - 0xa0]
lea esi, [ebp - 0x68]
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 + 0x409694]
mov dword [ebx + 0x40], eax
jmp 0x41551a
mov eax, dword [ebp - 0xa0]
and dword [ebx], 0
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xe4], 0x18
lea esi, [ebp - 0x68]
add esi, eax
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 0x41551a
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 + 0x409844]
jmp 0x415331
and dword [ebx], 0
jmp 0x415361
cmp byte [ebp - 0xa8], 0
jne 0x41551a
test edx, edx
js 0x41551a
cmp eax, 0x1b
jne 0x4153c7
mov byte [ebx + 0x64], 1
jmp 0x41551a
mov edx, dword [ebx + 4]
lea eax, [ebp - 0xd0]
push 1
push eax
lea ecx, [esi + 0xe8]
call fcn.00413ae6
mov edx, eax
test edx, edx
js 0x415544
mov ecx, dword [ebp - 0xa4]
mov esi, ebx
mov edi, dword [ebp - 0xd0]
push 0x28
inc dword [ecx + 0xe4]
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x41551a
cmp dword [edi + 0xe4], 0
jne 0x41541a
mov dword [ebx], 1
jmp 0x41551a
and dword [ebx], 0
mov dword [ebx + 0x40], 9
jmp 0x414562
cmp byte [edi + 0xe0], 0
je 0x415492
cmp dword [edi + 0xe4], 0
jne 0x415492
lea eax, [ebp - 0xc5]
mov ecx, edi
push eax
lea edx, [ebp - 0xbc]
call fcn.00418ae0
mov edx, eax
test edx, edx
js 0x41551a
cmp byte [ebp - 0xc5], 0
jne 0x41548c
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], esi
lea esi, [ebp - 0xbc]
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 0x41551a
mov ecx, dword [ebp - 0xa0]
mov dword [ebx], 7
jmp 0x414562
cmp byte [edi + 0xe0], 0
je 0x4154b4
cmp dword [edi + 0xe4], 0
jne 0x4154b4
mov dword [ebx + 0x38], ecx
jmp 0x41546b
lea eax, [ebp - 0xd4]
mov ecx, edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0x409730
push 2
pop edx
call fcn.00413c42
mov ecx, dword [ebp - 0xd4]
mov edx, eax
test edx, edx
js 0x4154ea
cmp ecx, 2
jne 0x4154ea
mov dword [ebx], 8
jmp 0x4149c4
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 + 0x409734]
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 - 0xa4]
mov eax, dword [eax + 0x14]
sub eax, dword [ebx + 0x10]
cmp byte [ebp - 0xa8], 0
mov dword [ebx + 0x14], eax
je 0x415544
test edx, edx
js 0x415544
push ecx
push ecx
mov ecx, 0xc000a083
call fcn.00415598
mov edx, eax
mov eax, edx
jmp 0x415554
push ecx
push ecx
mov ecx, 0xc000000d
call fcn.00415598
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041d1b0
leave
ret 8