Function at 0x470034
Capabilities:
Parse credit card information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x479b74]
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 0x4714c0
test ebx, ebx
je 0x4714c0
test eax, eax
je 0x47008a
cmp dword [eax + 8], 0x4c
jb 0x4714c0
push 0xa0
push 0
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
lea edx, [ebp - 0xa0]
mov ecx, edi
call fcn.0046f461
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x4714ae
cmp byte [ebp - 0xa4], 0
jne 0x4714bc
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 0x4706c3
cmp eax, 0x4c
jg 0x4703a0
je 0x4703b0
cmp eax, 0x33
je 0x4702b3
cmp eax, 0x3f
jle 0x471492
cmp eax, 0x41
jle 0x470138
cmp eax, 0x44
jle 0x471492
cmp eax, 0x46
jg 0x471492
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x66
je 0x470271
cmp dword [ebp - 0xa8], 0x4b
je 0x470182
cmp dword [ebp - 0xa8], 0x47
jne 0x470138
jmp 0x47029c
mov dword [ebx], 0xa
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x4b
je 0x470188
cmp dword [ebp - 0xa8], 0x4c
jne 0x4701e0
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 0x47029c
cmp dword [ebp - 0xa8], 0x4d
jne case.0x4704ca.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.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x4e
jne case.0x4704ca.92
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x4c
je 0x4701c8
push ecx
push ecx
mov ecx, 0xc000a083
call fcn.00472185
mov edx, eax
jmp 0x471492
push ebx
lea edx, [ebp - 0xb8]
mov dword [ebx], 9
mov ecx, edi
call fcn.0046fb34
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebx], 9
je 0x471492
cmp dword [ebx], 0xa
jne 0x47008a
jmp 0x471492
xor eax, eax
mov dword [ebp - 0xc0], eax
cmp byte [edi + 0xe0], al
je 0x4702e1
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 0x471489
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.0046e384
mov edx, eax
test edx, edx
js 0x4714bc
cmp byte [ebp - 0xa4], 0
mov eax, dword [ebp - 0xa8]
jne 0x47037b
cmp eax, 4
je 0x47037b
cmp eax, 0x34
je 0x471492
cmp eax, 1
je 0x47037b
sub eax, 0x37
je 0x47036d
sub eax, 1
je 0x470368
sub eax, 1
je 0x470363
dec eax
sub eax, 1
jne 0x4702ef
test esi, esi
je 0x4702ef
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 0x4702ef
lea esi, [ebx + 0x38]
jmp 0x470370
lea esi, [ebx + 0x48]
jmp 0x470370
lea esi, [ebx + 0x28]
mov dword [ebp - 0xc0], esi
jmp 0x4702ef
cmp eax, 0x34
je 0x471492
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 0x471480
cmp eax, 0x4f
je 0x4703b0
cmp eax, 0x65
jne 0x471492
jmp 0x4703e6
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
mov eax, dword [ebp - 0xa8]
cmp eax, 0x4f
je 0x4703b0
cmp eax, 0x65
jne 0x4703f1
mov dword [ebx], 0xc
jmp 0x471492
and dword [ebx + 0x34], 0
and dword [ebx + 0x2c], 0
cmp eax, 0x51
jne 0x470470
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.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x52
jne case.0x4704ca.92
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
mov eax, dword [ebp - 0xa8]
cmp eax, 0x50
jne case.0x4704ca.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.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
mov eax, dword [ebp - 0xa8]
add eax, 0xffffffad
cmp eax, 0xb
ja case.0x4704ca.92
jmp dword [eax*4 + 0x4714e0]
and dword [ebx + 0x48], 0
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
mov eax, dword [ebp - 0xa8]
mov dword [ebx + 0x5c], 3
sub eax, 0x5f
je 0x4706ba
sub eax, 1
je 0x4706ae
sub eax, 1
je 0x470629
sub eax, 1
je 0x470656
jmp case.0x4704ca.92
mov dword [ebx + 0x48], 1
jmp 0x4704d5
mov dword [ebx + 0x48], 2
jmp 0x4704d5
mov dword [ebx + 0x48], 3
jmp 0x4704d5
mov dword [ebx + 0x48], 4
jmp 0x4704d5
mov dword [ebx + 0x48], 5
jmp 0x4704d5
mov dword [ebx + 0x48], 6
jmp 0x4704d5
mov dword [ebx + 0x48], 7
jmp 0x4704d5
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x5c
jne case.0x4704ca.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.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
je 0x4704d5
jmp 0x471492
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x5c
jne case.0x4704ca.92
mov dword [ebx + 0x48], 8
jmp 0x4705af
push 1
lea edx, [ebp - 0xb8]
mov dword [ebx + 0x5c], 2
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xa4], 0
jne 0x471492
cmp dword [ebp - 0xa8], 0x63
jne case.0x4704ca.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.0046e384
jmp 0x47026a
mov dword [ebx + 0x5c], 1
jmp 0x471492
and dword [ebx + 0x5c], 0
jmp 0x471492
je 0x471415
dec eax
sub eax, 1
je 0x4713a1
dec eax
sub eax, 1
je 0x47137e
sub eax, 1
je 0x470b08
sub eax, 0x1d
je 0x470822
sub eax, 6
je 0x47075d
sub eax, 5
jne 0x471492
lea eax, [ebp - 0xdc]
mov ecx, edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0x415a80
push 2
pop edx
call fcn.0046f8c4
mov ecx, dword [ebp - 0xdc]
mov edx, eax
test edx, edx
js 0x47073d
cmp ecx, 2
jne 0x47073d
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 0x471480
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 + 0x415a84]
jmp 0x47147d
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x470819
cmp byte [ebp - 0xa4], 0
jne 0x470819
cmp dword [ebp - 0xa8], 0x2a
jne 0x470819
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.0046e384
mov edx, eax
test edx, edx
js 0x470810
cmp byte [ebp - 0xa4], 0
jne 0x470810
cmp dword [ebp - 0xa8], 0x2b
jne 0x4707e5
lea edi, [ebx + 0x38]
jmp 0x4707ab
cmp dword [ebp - 0xa8], 0x29
je 0x471492
cmp dword [ebp - 0xa8], 4
jne 0x4707b5
mov dword [ebx + 0x40], 0x11
and dword [ebx], 0
lea esi, [ebp - 0xb8]
jmp 0x470731
mov dword [ebx + 0x40], 0x10
jmp 0x470802
mov dword [ebx + 0x40], 0x12
jmp 0x470802
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.0047190a
test eax, eax
js 0x4714cc
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x470aec
cmp byte [ebp - 0xa4], 0
jne 0x470aec
cmp dword [ebp - 0xa8], 0x23
je 0x47088d
cmp dword [ebp - 0xa8], 0x26
jne 0x470aec
cmp dword [ebp - 0xa8], 0x26
jne 0x470924
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.0046e384
mov edx, eax
test edx, edx
js 0x470908
cmp byte [ebp - 0xa4], 0
jne 0x470908
cmp dword [ebp - 0xa8], 0x27
jne 0x470908
push 1
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x470908
cmp byte [ebp - 0xa4], 0
jne 0x470908
cmp dword [ebp - 0xa8], 0x23
je 0x470924
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 0x471480
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.0046e384
mov edx, eax
test edx, edx
js 0x470abc
cmp byte [ebp - 0xa4], 0
jne 0x470abc
cmp dword [ebp - 0xa8], 4
je 0x470abc
cmp dword [ebp - 0xa8], 0x25
jne 0x470963
mov esi, dword [ebp - 0xcc]
test esi, esi
je 0x470a3e
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.0046fa40
mov edx, eax
cmp edx, 0xc000a083
jne 0x470a15
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 0x4713f3
test edx, edx
js 0x471492
mov eax, dword [ebp - 0xc4]
mov ecx, esi
mov edx, dword [eax + 4]
inc edx
call fcn.00471d0b
mov edx, eax
test edx, edx
js 0x471492
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 [0x47d838]
call esi
mov edx, eax
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x470a9d
test edx, edx
js 0x471492
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 [0x47d838]
call esi
mov edx, eax
mov eax, dword [ebp - 0xcc]
test edx, edx
js 0x471492
test eax, eax
je 0x471492
lea esi, [ebx + 0x10]
mov dword [ebx + 0x40], 0x1c
jmp 0x4709fc
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 0x471492
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 0x471480
mov al, byte [edi + 0xe0]
test al, al
je 0x470b3c
cmp dword [edi + 0xe4], 0
jne 0x470b3c
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 0x471489
and dword [ebp - 0xc8], 0
and dword [ebp - 0xdc], 0
test al, al
jne 0x470b55
mov byte [edi + 0xe0], 1
push 1
lea edx, [ebp - 0xb8]
mov ecx, edi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x470c1c
cmp byte [ebp - 0xa4], 0
jne 0x470c1c
mov eax, dword [ebp - 0xa8]
cmp eax, 6
je 0x470b8f
cmp eax, 0x16
jne 0x470c1c
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 0x470c34
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.0046e384
mov edx, eax
test edx, edx
js 0x470c28
cmp byte [ebp - 0xa4], 0
jne 0x470c28
cmp dword [ebp - 0xa8], 0x17
jne 0x470c28
push 1
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x470c1c
cmp byte [ebp - 0xa4], 0
jne 0x470c1c
cmp dword [ebp - 0xa8], 6
je 0x470c34
mov dword [ebx + 0x40], 4
jmp 0x470802
mov dword [ebx + 0x40], 5
jmp 0x470802
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 0x470c9e
push 0
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046e384
mov edx, eax
test edx, edx
js 0x470c9e
lea edx, [ebp - 0xa0]
mov ecx, esi
call fcn.0046f461
lea edx, [ebp - 0xb8]
mov ecx, esi
call fcn.0046f49e
mov edi, dword [ebp - 0xa0]
mov edx, eax
mov eax, dword [ebp - 0xa8]
cmp eax, 0x1a
je 0x471279
cmp eax, 0x1b
je 0x471279
cmp eax, 4
je 0x471279
cmp byte [ebp - 0xa4], 0
jne 0x471492
test edx, edx
js 0x471492
sub eax, 7
je 0x470fc8
sub eax, 1
je 0x470efa
sub eax, 7
je 0x470e5f
sub eax, 9
je 0x470daf
sub eax, 4
jne 0x470c5d
lea eax, [ebp - 0xe4]
mov ecx, esi
push eax
lea eax, [ebp - 0x68]
push eax
push 0x415aa0
push 4
pop edx
call fcn.0046f8c4
mov edx, eax
test edx, edx
js 0x47110f
mov ecx, dword [ebp - 0xe4]
cmp ecx, 4
jne 0x4710e3
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x470e57
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.0047190a
mov dword [ebp - 0xc0], eax
test eax, eax
js 0x4714cc
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 0x470e57
lea eax, [ebp - 0xe8]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
push 0x415a30
push 6
pop edx
call fcn.0046f8c4
mov edx, eax
test edx, edx
js 0x471156
mov ecx, dword [ebp - 0xe8]
cmp ecx, 6
jne 0x471127
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x470e57
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.0047190a
mov edx, eax
test edx, edx
js 0x4714bc
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 0x470c5d
lea eax, [ebp - 0xec]
mov ecx, esi
push eax
lea eax, [ebp - 0x98]
push eax
push 0x4159c0
push 6
pop edx
call fcn.0046f8c4
mov edx, eax
test edx, edx
js 0x4711a0
mov ecx, dword [ebp - 0xec]
cmp ecx, 6
jne 0x471174
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x470e57
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.0047190a
mov edx, eax
test edx, edx
js 0x4714bc
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 0x470e45
lea eax, [ebp - 0xd8]
mov ecx, esi
push eax
lea eax, [ebp - 0x68]
push eax
push 0x415970
push 4
pop edx
call fcn.0046f8c4
mov edx, eax
mov dword [ebp - 0xc0], edx
test edx, edx
js 0x4711f6
mov ecx, dword [ebp - 0xd8]
cmp ecx, 4
jne 0x4711c7
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x470f68
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x38]
push ecx
inc edx
mov ecx, eax
call fcn.00471b97
mov edx, eax
mov dword [ebp - 0xc0], edx
cmp edx, 0xc00000bd
je 0x4711b5
test edx, edx
js 0x4714bc
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4710d5
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.0047190a
mov dword [ebp - 0xc0], eax
test eax, eax
js 0x4714cc
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 0x4710b2
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 0x415b20
push 6
pop edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0046f8c4
mov edx, eax
mov dword [ebp - 0xc0], edx
test edx, edx
js 0x471274
mov ecx, dword [ebp - 0xf0]
cmp ecx, 6
jne 0x47123f
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x471051
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x38]
inc edx
push ecx
mov ecx, eax
call fcn.00471a2e
mov edx, eax
mov dword [ebp - 0xc0], edx
cmp edx, 0xc00000bd
je 0x471224
test edx, edx
js 0x4714bc
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4710cf
mov edx, dword [ebx + 0x60]
lea ecx, [ebp - 0xc8]
push 1
push ecx
mov ecx, eax
call fcn.0047190a
mov dword [ebp - 0xc0], eax
test eax, eax
js 0x4714cc
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 0x4710d5
mov edi, dword [ebp - 0xa0]
inc dword [ebx + 0x60]
mov edx, dword [ebp - 0xc0]
jmp 0x470c5d
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 + 0x415aa4]
jmp 0x4711ee
mov eax, dword [ebp - 0x9c]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xe4], 0x18
jmp 0x471209
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 + 0x415a34]
jmp 0x4711ee
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 0x47120c
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 + 0x4159c4]
jmp 0x4711ee
mov eax, dword [ebp - 0x9c]
and dword [ebx], 0
mov dword [ebx + 0x3c], eax
imul eax, dword [ebp - 0xec], 0x18
jmp 0x471169
mov dword [ebx + 0x38], edi
lea esi, [ebp - 0x38]
mov dword [ebx + 0x40], 0x1f
jmp 0x470b2b
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 + 0x415974]
mov dword [ebx + 0x40], eax
jmp 0x471492
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 0x471492
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 0x471480
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 + 0x415b24]
jmp 0x4711ee
and dword [ebx], 0
jmp 0x471218
cmp byte [ebp - 0xa4], 0
jne 0x471492
test edx, edx
js 0x471492
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 0x4712d9
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.0046fa40
mov esi, dword [ebp - 0xd8]
mov edx, eax
mov ecx, dword [ebp - 0xcc]
cmp edx, 0xc000a083
jne 0x47130a
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 0x47148f
test edx, edx
js 0x4714bc
cmp dword [ebp - 0xa8], 0x1b
jne 0x47133f
mov byte [ebx + 0x64], 1
test ecx, ecx
je 0x471492
mov edx, dword [ebx + 4]
inc edx
call fcn.00471d0b
mov edx, eax
test edx, edx
jns 0x471492
jmp 0x4714bc
mov edi, dword [ebp - 0xbc]
lea eax, [ebp - 0xdc]
mov edx, dword [ebx + 4]
push 1
push eax
lea ecx, [edi + 0xe8]
call fcn.0047190a
mov edx, eax
test edx, edx
js 0x4714bc
inc dword [edi + 0xe4]
mov esi, ebx
mov edi, dword [ebp - 0xdc]
push 0x28
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x471492
cmp dword [edi + 0xe4], 0
jne 0x471392
mov dword [ebx], 1
jmp 0x471492
and dword [ebx], 0
mov dword [ebx + 0x40], 9
jmp 0x4702cc
cmp byte [edi + 0xe0], 0
je 0x47140a
cmp dword [edi + 0xe4], 0
jne 0x47140a
lea eax, [ebp - 0xcd]
mov ecx, edi
push eax
lea edx, [ebp - 0xb8]
call fcn.0046f830
mov edx, eax
test edx, edx
js 0x471492
cmp byte [ebp - 0xcd], 0
jne 0x471404
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 0x471492
mov ecx, dword [ebp - 0xa0]
mov dword [ebx], 7
jmp 0x4702cc
cmp byte [edi + 0xe0], 0
je 0x47142c
cmp dword [edi + 0xe4], 0
jne 0x47142c
mov dword [ebx + 0x38], ecx
jmp 0x4713e3
lea eax, [ebp - 0xe0]
mov ecx, edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0x415a10
push 2
pop edx
call fcn.0046f8c4
mov ecx, dword [ebp - 0xe0]
mov edx, eax
test edx, edx
js 0x471462
cmp ecx, 2
jne 0x471462
mov dword [ebx], 8
jmp 0x47072e
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 + 0x415a14]
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 0x4714bc
test edx, edx
js 0x4714bc
push ecx
push ecx
mov ecx, 0xc000a083
call fcn.00472185
mov edx, eax
mov eax, edx
jmp 0x4714cc
push ecx
push ecx
mov ecx, 0xc000000d
call fcn.00472185
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004729c0
leave
ret 8