Function at 0x47ebd0
Capabilities:
Print debug messages
Query or enumerate registry value
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x22e0
call fcn.004a98b0
mov eax, dword [0x4dd52c]
mov dword [ebp - 4], eax
xor eax, eax
push esi
mov esi, dword [ebp + 8]
mov al, byte [esi + 0x16626]
mov dword [ebp - 0x22bc], 1
and eax, 4
shr eax, 2
cmp word [esi + 0x140], 0
mov dword [ebp - 0x22b8], eax
jne 0x47ec2c
cmp word [esi + 0xa1f], 0
jle 0x47ec26
mov ax, word [esi + 0x1663c]
jmp 0x47ec33
mov ax, word [esi + 0x50]
jmp 0x47ec33
mov ax, word [esi + 0x1625c]
xor ecx, ecx
mov cx, word [esi + 0x5c]
push ebx
push edi
mov word [ebp - 0x2294], ax
xor eax, eax
mov word [ebp - 0x1240], ax
mov dword [ebp - 0x22c8], eax
mov dword [ebp - 0x22c4], ecx
xor ecx, ecx
mov cx, word [esi + 0x13a]
mov dword [ebp - 0x22d4], eax
mov dword [ebp - 0x22cc], eax
mov dword [ebp - 0x22a0], eax
mov dword [ebp - 0x22b4], eax
mov dword [ebp - 0x22dc], eax
lea edi, [ebp - 0x123e]
mov dword [ebp - 0x22d0], ecx
mov ecx, 0x3ff
rep stosd dword es:[edi], eax
push esi
lea ebx, [esi + 0x5230]
stosw word es:[edi], ax
call fcn.0045db24
cmp eax, 1
jne 0x47ecc2
cmp word [esi + 0x1977e], 2
jne 0x47ecc2
xor edi, edi
inc edi
cmp dword [esi + 0x51e8], edi
jne 0x47ecc5
push edi
push ebx
call fcn.004b6db8
jmp 0x47ecc5
xor edi, edi
inc edi
cmp word [esi + 0x52], 0x100
jl 0x47ecf5
cmp word [esi + 0x140], 0
je 0x47ecf5
mov ax, word [esi + 0x56]
cmp ax, word [esi + 0x54]
jle 0x47ecf5
xor eax, eax
cmp word [ebp - 0x2294], 2
setne al
inc eax
mov dword [ebp - 0x2294], eax
lea eax, [ebp - 0x22dc]
push eax
lea eax, [ebp - 0x22d0]
push eax
lea eax, [ebp - 0x22c4]
push eax
push esi
call fcn.004a4f11
cmp dword [ebp - 0x22dc], edi
jne 0x47ed30
and dword [ebp - 0x22b8], 0
mov dword [ebp - 0x22b4], edi
mov dword [ebp - 0x22a0], edi
jmp 0x47ee58
cmp word [esi + 0x13a], 3
jne 0x47ed65
push 0x15
push esi
call fcn.004a53d4
test eax, eax
jne 0x47ed65
cmp word [esi + 0x13c], ax
jle 0x47ed67
cmp dword [ebp - 0x22b8], edi
jne 0x47eda3
mov dword [ebp - 0x22a0], eax
mov dword [ebp - 0x22b4], eax
jmp 0x47eda3
xor eax, eax
cmp word [esi + 0x584], ax
jne 0x47ed91
cmp word [esi + 0x36a], ax
jne 0x47ed91
cmp dword [esi + 0x199f4], edi
je 0x47ed97
cmp dword [esi + 0x199f8], edi
je 0x47ed97
mov dword [ebp - 0x22a0], eax
jmp 0x47ed9d
mov dword [ebp - 0x22b8], eax
mov dword [ebp - 0x22a0], edi
mov dword [ebp - 0x22b4], edi
cmp dword [ebp - 0x22b8], eax
je 0x47ee58
cmp dword [esi + 0x51e8], eax
jne 0x47ee58
mov ax, word [esi + 0x57a]
cmp ax, di
je 0x47edf4
cmp ax, 2
je 0x47edf4
push 0x15
push esi
call fcn.004a53d4
test eax, eax
jne 0x47ee58
cmp word [esi + 0x13a], 3
jne 0x47ee58
cmp word [esi + 0x13c], ax
jle 0x47ee58
push esi
call fcn.0047ea02
jmp 0x47ee58
mov bx, word [esi + 0x5c]
and word [esi + 0x5dc], 0
push 0x98
push esi
call fcn.004a53d4
cmp eax, edi
jne 0x47ee1e
xor eax, eax
mov ax, word [esi + 0x5c]
push eax
push esi
call fcn.0047dec0
jmp 0x47ee41
xor eax, eax
mov ax, word [esi + 0x5c]
push eax
push esi
call fcn.0047dec0
push esi
mov word [esi + 0x5c], 6
call fcn.004a6cba
cmp ax, 6
je 0x47ee41
mov word [esi + 0x5c], di
xor eax, eax
mov ax, word [esi + 0x5c]
push eax
push esi
call fcn.0047dec0
mov word [esi + 0x5c], bx
mov dword [ebp - 0x22b8], edi
test byte [esi + 0x16626], 1
je 0x47ef59
cmp word [esi + 0x368], 0
jne 0x47ef59
cmp byte [esi + 0xd10], 0
jne 0x47ef59
mov al, byte [esi + 0x189db]
cmp al, 2
je 0x47ef59
cmp al, 1
jne 0x47eea6
lea eax, [ebp - 0x22d8]
push eax
push 0x16
push 0x412508
push esi
call fcn.00493b72
mov ax, word [esi + 0x36a]
test ax, ax
mov byte [ebp - 0x229c], 0x1b
mov byte [ebp - 0x229b], 0xf0
mov byte [ebp - 0x229a], 0x10
mov byte [ebp - 0x2299], 0xaa
je 0x47ef21
jle 0x47ef3c
cmp word [esi + 0x584], 0
jbe 0x47ef21
movsx eax, ax
inc eax
cmp eax, 4
jle 0x47ef0e
movsx eax, word [esi + 0x36c]
mov dword [ebp - 0x22c0], eax
push ecx
push ecx
fild dword [ebp - 0x22c0]
fmul qword [0x407b28]
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
pop ecx
pop ecx
call fcn.004a9810
mov ecx, eax
imul ecx, eax
mov eax, dword [esi + 0x51e8]
xor edx, edx
div ecx
test edx, edx
jne 0x47ef3c
push esi
call fcn.0043db13
push 4
lea eax, [ebp - 0x229c]
push eax
push esi
call fcn.0043dbe6
push esi
call fcn.0043db13
cmp byte [esi + 0x189db], 1
jne 0x47ef59
lea eax, [ebp - 0x22d8]
push eax
push 0x12
push 0x4124f4
push esi
call fcn.00493b72
push 0xa
push esi
mov byte [ebp - 0x38], 0xc0
call fcn.004a53d4
movsx ecx, word [esi + 0x140]
dec ecx
mov dword [ebp - 0x2298], eax
je 0x47f06d
dec ecx
dec ecx
je 0x47f06d
cmp word [ebp - 0x2294], di
mov dx, word [esi + 0x9e1]
setne al
mov ebx, 0xb4
cmp dx, bx
mov cl, al
mov byte [ebp - 0x37], cl
jne 0x47efb0
cmp word [ebp - 0x2294], di
setne cl
add cl, 2
jmp 0x47efbf
cmp dx, 0x5a
jne 0x47efc2
cmp word [esi + 0x52], 0xb
jne 0x47efc2
xor cl, cl
mov byte [ebp - 0x37], cl
mov dx, word [esi + 0x57a]
cmp dx, di
je 0x47efd4
cmp dx, 2
jne 0x47f02b
cmp dword [ebp - 0x2298], 0
jne 0x47f008
cmp word [esi + 0x9e1], bx
jne 0x47f003
cmp dx, di
jne 0x47eff4
test byte [esi + 0x51e8], 1
jne 0x47f026
cmp word [ebp - 0x2294], di
setne cl
jmp 0x47f0d2
cmp dx, di
jmp 0x47f01b
cmp word [esi + 0x9e1], bx
jne 0x47f017
cmp dx, 2
jmp 0x47efe9
cmp dx, 2
jne 0x47f026
test byte [esi + 0x51e8], 1
jne 0x47eff4
mov cl, al
mov byte [ebp - 0x37], cl
mov al, byte [esi + 0xd10]
cmp al, 6
je 0x47f1ad
test al, al
jbe 0x47f1ad
cmp word [ebp - 0x2294], di
movsx eax, word [esi + 0x140]
jne 0x47f0da
dec eax
je 0x47f0e9
dec eax
dec eax
je 0x47f0e9
mov byte [ebp - 0x37], 1
jmp 0x47f1be
mov ebx, dword [ebp - 0x2294]
cmp bx, di
sete al
cmp word [esi + 0x9e1], 0xb4
mov cl, al
mov byte [ebp - 0x37], cl
jne 0x47f095
cmp bx, di
sete cl
add cl, 2
mov byte [ebp - 0x37], cl
mov dx, word [esi + 0x57a]
cmp dx, di
je 0x47f0a7
cmp dx, 2
jne 0x47f02b
cmp dword [ebp - 0x2298], 0
jne 0x47f0b5
cmp dx, di
jmp 0x47f0b9
cmp dx, 2
jne 0x47f026
test byte [esi + 0x51e8], 1
je 0x47f026
cmp bx, di
sete cl
add cl, 2
jmp 0x47f028
dec eax
je 0x47f1a8
dec eax
dec eax
je 0x47f1a8
mov byte [ebp - 0x37], 0
mov dword [ebp - 0x229c], edi
push 0xb
pop eax
cmp word [esi + 0x52], ax
mov byte [ebp - 0x36], 0xf8
mov byte [ebp - 0x35], 0x28
mov byte [ebp - 0x34], 0xc0
jne 0x47f140
cmp word [esi + 0x9e1], 0x5a
jne 0x47f140
mov dword [ebp - 0x22c8], eax
mov ax, word [esi + 0x56]
mov word [ebp - 0x22d4], ax
mov ax, word [esi + 0x54]
mov word [ebp - 0x22cc], ax
mov word [esi + 0x52], 0x100
mov word [esi + 0x56], 0x834
mov word [esi + 0x54], 0x5c8
mov ax, word [esi + 0x364]
xor edx, edx
cmp ax, dx
jg 0x47f1f7
cmp word [esi + 0x9cf], dx
jg 0x47f1f7
mov cx, word [esi + 0x140]
cmp cx, dx
jle 0x47f17c
mov edi, dword [esi + 0x16620]
cmp word [edi + 0x1ec], 0x100
jl 0x47f1f7
cmp word [esi + 0x52], 0x100
jl 0x47f1f7
cmp cx, dx
mov byte [ebp - 0x33], 2
mov byte [ebp - 0x32], 0xf8
mov byte [ebp - 0x31], 0x30
mov byte [ebp - 0x30], 0xd1
jle 0x47f1cd
mov eax, dword [esi + 0x16620]
mov ax, word [eax + 0x1f8]
jmp 0x47f1d1
mov cl, 1
mov byte [ebp - 0x37], cl
test cl, cl
je 0x47f0ed
cmp cl, 2
je 0x47f0ed
mov dword [ebp - 0x229c], 2
jmp 0x47f0f3
mov ax, word [esi + 0x56]
cmp cx, dx
mov byte [ebp - 0x2f], al
mov byte [ebp - 0x2e], ah
jle 0x47f1ee
mov eax, dword [esi + 0x16620]
mov ax, word [eax + 0x1fa]
jmp 0x47f58e
mov ax, word [esi + 0x54]
jmp 0x47f58e
xor ebx, ebx
cmp ax, dx
jle 0x47f227
xor edi, edi
mov di, word [esi + 0x366]
cmp di, 0x100
mov dword [ebp - 0x2294], edi
jl 0x47f290
push 0x9a
push esi
call fcn.004a53d4
cmp eax, 1
jne 0x47f290
inc ebx
jmp 0x47f290
cmp word [esi + 0x9cf], dx
jle 0x47f23b
xor edi, edi
mov di, word [esi + 0x9d1]
jmp 0x47f28a
cmp word [esi + 0x140], dx
jle 0x47f284
mov eax, dword [esi + 0x16620]
cmp word [eax + 0x1fc], dx
jle 0x47f25e
xor edi, edi
mov di, word [eax + 0x208]
jmp 0x47f28a
cmp byte [esi + 0xc97], 1
jne 0x47f279
xor ecx, ecx
mov cx, word [esi + 0x199d0]
cmp cx, dx
jle 0x47f279
mov edi, ecx
jmp 0x47f28a
xor edi, edi
mov di, word [eax + 0x1ec]
jmp 0x47f28a
xor edi, edi
mov di, word [esi + 0x52]
mov dword [ebp - 0x2294], edi
movsx eax, di
cmp eax, 0x14
mov dword [ebp - 0x2298], eax
jg 0x47f311
je 0x47f30b
dec eax
cmp eax, 0xd
ja case.0x47f2aa.2
jmp dword [eax*4 + 0x47fea5]
mov byte [ebp - 0x33], 0
cmp ebx, 1
je 0x47f546
mov byte [ebp - 0x32], 0xf8
mov byte [ebp - 0x31], 0x25
push 8
jmp 0x47f59e
mov byte [ebp - 0x33], 1
jmp 0x47f2b5
mov byte [ebp - 0x33], 2
jmp 0x47f2b5
mov byte [ebp - 0x33], 3
jmp 0x47f2b5
mov byte [ebp - 0x33], 4
jmp 0x47f2b5
mov byte [ebp - 0x33], 5
jmp 0x47f2b5
mov byte [ebp - 0x33], 0xb
jmp 0x47f2b5
mov byte [ebp - 0x33], 0x10
jmp 0x47f2b5
mov byte [ebp - 0x33], 0xa
jmp 0x47f2b5
push 0
push 4
lea eax, [ebp - 0x38]
push eax
push edi
jmp 0x47f516
mov byte [ebp - 0x33], 6
jmp 0x47f2b5
cmp eax, 0x2b
jg 0x47f359
je 0x47f350
sub eax, 0x1b
je 0x47f347
dec eax
je 0x47f33e
sub eax, 3
je case.0x47f2aa.6
sub eax, 3
je 0x47f335
sub eax, 3
jne case.0x47f2aa.2
mov byte [ebp - 0x33], 7
jmp 0x47f2b5
mov byte [ebp - 0x33], 0xc
jmp 0x47f2b5
mov byte [ebp - 0x33], 8
jmp 0x47f2b5
mov byte [ebp - 0x33], 9
jmp 0x47f2b5
mov byte [ebp - 0x33], 0xe
jmp 0x47f2b5
cmp eax, 0x3b
je 0x47f53d
cmp eax, 0x46
je 0x47f534
jle case.0x47f2aa.2
cmp eax, 0x48
jle case.0x47f2aa.6
cmp eax, 0x58
je case.0x47f2aa.6
cmp eax, 0x79
je case.0x47f2aa.6
test ebx, ebx
jne 0x47f2b5
lea eax, [ebp - 0x2290]
push eax
call fcn.0042fd0f
cmp dword [esi + 0x19784], ebx
je 0x47f2be
push dword [ebp - 0x2298]
xor eax, eax
mov word [ebp - 0x240], bx
mov ecx, 0x81
lea edi, [ebp - 0x23e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x240]
push 0x405bf4
push eax
mov dword [ebp - 0x22c0], ebx
call dword [sym.imp.msvcrt.dll_swprintf]
add esp, 0xc
mov dword [ebp - 0x2298], ebx
lea edi, [esi + 0x19e44]
push edi
lea ebx, [esi + 0x19a24]
push ebx
lea eax, [ebp - 0x2298]
push eax
mov dword [ebp - 0x22e0], 0x50
call fcn.004805f0
test eax, eax
jne 0x47f44b
lea eax, [ebp - 0x22e0]
push eax
lea eax, [ebp - 0x2290]
push eax
push 0
push 0
lea eax, [ebp - 0x240]
push eax
push dword [ebp - 0x2298]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x47f436
mov dword [ebp - 0x22c0], 1
push dword [ebp - 0x2298]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x22c0], 0
jne 0x47f4ab
lea eax, [ebp - 0x2290]
push eax
push dword [ebp - 0x2294]
push 0
push dword [esi + 0x5010]
call dword [esi + 0x19784]
and dword [ebp - 0x2298], 0
push edi
push ebx
lea eax, [ebp - 0x2298]
push eax
call fcn.004806cf
test eax, eax
jne 0x47f4ab
push 0x50
lea eax, [ebp - 0x2290]
push eax
push 3
push 0
lea eax, [ebp - 0x240]
push eax
push dword [ebp - 0x2298]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x2298]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x4124e4
lea eax, [ebp - 0x2280]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x47f503
movsx eax, word [ebp - 0x2284]
cdq
mov ecx, 0x12c
mov edi, ecx
idiv edi
mov byte [ebp - 0x33], 2
mov byte [ebp - 0x32], 0xf8
mov byte [ebp - 0x31], 0x30
mov byte [ebp - 0x30], 0xd1
imul eax, eax, 0xfe
mov byte [ebp - 0x2f], al
mov byte [ebp - 0x2e], ah
movsx eax, word [ebp - 0x2282]
cdq
idiv ecx
imul eax, eax, 0xfe
jmp 0x47f58e
lea eax, [ebp - 0x2280]
push eax
push 4
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x2294]
call fcn.0047df7f
inc eax
movzx ecx, ax
inc eax
mov byte [ebp + ecx - 0x38], 0xf8
movzx ecx, ax
inc eax
movzx eax, ax
mov byte [ebp + ecx - 0x38], 0x25
push eax
jmp 0x47f59e
mov byte [ebp - 0x33], 0x11
jmp 0x47f2b5
mov byte [ebp - 0x33], 0x1a
jmp 0x47f2b5
mov cx, word [esi + 0x140]
test cx, cx
mov byte [ebp - 0x33], 2
mov byte [ebp - 0x32], 0xf8
mov byte [ebp - 0x31], 0x30
mov byte [ebp - 0x30], 0xd1
jle 0x47f571
mov eax, dword [esi + 0x16620]
mov ax, word [eax + 0x1f8]
jmp 0x47f578
mov ax, word [esi + 0xdd6]
test cx, cx
mov byte [ebp - 0x2f], al
mov byte [ebp - 0x2e], ah
jg 0x47f1dc
mov ax, word [esi + 0xdd8]
mov byte [ebp - 0x2d], al
mov byte [ebp - 0x2c], ah
push 0xf
mov byte [ebp - 0x2b], 0xf8
mov byte [ebp - 0x2a], 0x2f
lea eax, [ebp - 0x38]
push eax
push esi
call fcn.0043dbe6
cmp word [ebp - 0x22c8], 0xb
jne 0x47f5d8
cmp word [esi + 0x9e1], 0x5a
jne 0x47f5d8
mov ax, word [ebp - 0x22d4]
mov word [esi + 0x56], ax
mov ax, word [ebp - 0x22cc]
mov word [esi + 0x52], 0xb
mov word [esi + 0x54], ax
cmp dword [ebp - 0x22b8], 0
jne 0x47fcd7
cmp word [esi + 0x5dc], 0
jbe 0x47f5f9
mov dword [ebp - 0x22bc], 2
mov ax, word [esi + 0x5da]
cmp ax, 1
je 0x47f60c
cmp ax, 2
jne 0x47f612
inc dword [ebp - 0x22bc]
cmp dword [esi + 0x1dfa8], 1
mov ebx, 0x800
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47f73b
cmp eax, 3
jb 0x47f73b
and word [ebp - 0x2240], 0
push dword [esi + 0x51e8]
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x223e]
rep stosd dword es:[edi], eax
push 0x4124b8
stosw word es:[edi], ax
lea eax, [ebp - 0x2240]
push ebx
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47f73b
cmp eax, 3
jb 0x47f73b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x22b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x1240]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2240]
push eax
movzx eax, word [ebp - 0x22a2]
push 0x412498
push eax
movzx eax, word [ebp - 0x22a4]
push eax
movzx eax, word [ebp - 0x22a6]
push eax
movzx eax, word [ebp - 0x22a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x1240]
push ebx
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [esi + 0x1dfa0], 1
lea eax, [ebp - 0x1240]
push eax
jne 0x47f71d
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x47f73b
lea edi, [esi + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47f85f
cmp eax, 3
jb 0x47f85f
and word [ebp - 0x2240], 0
push dword [ebp - 0x22bc]
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x223e]
rep stosd dword es:[edi], eax
push 0x412470
stosw word es:[edi], ax
lea eax, [ebp - 0x2240]
push ebx
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47f85f
cmp eax, 3
jb 0x47f85f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x22b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x1240]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2240]
push eax
movzx eax, word [ebp - 0x22a2]
push 0x412498
push eax
movzx eax, word [ebp - 0x22a4]
push eax
movzx eax, word [ebp - 0x22a6]
push eax
movzx eax, word [ebp - 0x22a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x1240]
push ebx
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [esi + 0x1dfa0], 1
lea eax, [ebp - 0x1240]
push eax
jne 0x47f841
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x47f85f
lea edi, [esi + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47f983
cmp eax, 3
jb 0x47f983
and word [ebp - 0x2240], 0
push dword [ebp - 0x22a0]
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x223e]
rep stosd dword es:[edi], eax
push 0x412448
stosw word es:[edi], ax
lea eax, [ebp - 0x2240]
push ebx
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47f983
cmp eax, 3
jb 0x47f983
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x22b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x1240]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2240]
push eax
movzx eax, word [ebp - 0x22a2]
push 0x412498
push eax
movzx eax, word [ebp - 0x22a4]
push eax
movzx eax, word [ebp - 0x22a6]
push eax
movzx eax, word [ebp - 0x22a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x1240]
push ebx
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [esi + 0x1dfa0], 1
lea eax, [ebp - 0x1240]
push eax
jne 0x47f965
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x47f983
lea edi, [esi + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47fab0
cmp eax, 3
jb 0x47fab0
and word [ebp - 0x2240], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x223e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esi + 0x51dc]
shr eax, 0x17
not eax
and eax, 1
push eax
push 0x4123f0
lea eax, [ebp - 0x2240]
push ebx
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fab0
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47fab0
cmp eax, 3
jb 0x47fab0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x22b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x1240]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2240]
push eax
movzx eax, word [ebp - 0x22a2]
push 0x412498
push eax
movzx eax, word [ebp - 0x22a4]
push eax
movzx eax, word [ebp - 0x22a6]
push eax
movzx eax, word [ebp - 0x22a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x1240]
push ebx
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [esi + 0x1dfa0], 1
lea eax, [ebp - 0x1240]
push eax
jne 0x47fa92
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x47fab0
lea edi, [esi + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
mov eax, dword [ebp - 0x22bc]
cmp dword [esi + 0x51e8], eax
jb 0x47fad4
cmp dword [ebp - 0x22a0], 1
je 0x47fad4
test byte [esi + 0x51de], 0x80
jne 0x47fcd7
cmp dword [esi + 0x1dfa8], 1
jne 0x47fcc4
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47fb9e
cmp eax, 3
jb 0x47fb9e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x22b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
push 0x4123b4
mov ecx, 0x400
lea edi, [ebp - 0x1240]
rep stosd dword es:[edi], eax
movzx eax, word [ebp - 0x22a2]
push 0x412498
push eax
movzx eax, word [ebp - 0x22a4]
push eax
movzx eax, word [ebp - 0x22a6]
push eax
movzx eax, word [ebp - 0x22a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x1240]
push ebx
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [esi + 0x1dfa0], 1
lea eax, [ebp - 0x1240]
push eax
jne 0x47fb80
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x47fb9e
lea edi, [esi + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fcc4
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47fcc4
cmp eax, 3
jb 0x47fcc4
and word [ebp - 0x2240], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x223e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movsx eax, word [ebp - 0x22c4]
push eax
push 0x412370
lea eax, [ebp - 0x2240]
push ebx
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [esi + 0x1dfa8], 1
jne 0x47fcc4
mov eax, dword [esi + 0x1dfac]
test eax, eax
je 0x47fcc4
cmp eax, 3
jb 0x47fcc4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x22b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x1240]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2240]
push eax
movzx eax, word [ebp - 0x22a2]
push 0x412498
push eax
movzx eax, word [ebp - 0x22a4]
push eax
movzx eax, word [ebp - 0x22a6]
push eax
movzx eax, word [ebp - 0x22a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x1240]
push ebx
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [esi + 0x1dfa0], 1
lea eax, [ebp - 0x1240]
push eax
jne 0x47fca6
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x47fcc4
lea edi, [esi + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
push dword [ebp - 0x22c4]
or byte [esi + 0x51de], 0x80
push esi
call fcn.0047dec0
push 0x55
push esi
call fcn.004a53d4
xor edx, edx
inc edx
cmp eax, edx
jne 0x47fdf1
cmp word [ebp - 0x229c], dx
jne 0x47fcff
mov ax, word [esi + 0x5da]
cmp ax, dx
je 0x47fd16
cmp word [ebp - 0x229c], 2
jne 0x47fd1a
mov ax, word [esi + 0x5da]
cmp ax, 2
jne 0x47fd61
push 2
jmp 0x47fd68
cmp word [ebp - 0x229c], dx
jne 0x47fd30
mov ax, word [esi + 0x5da]
cmp ax, 2
je 0x47fd66
mov ax, word [esi + 0x5da]
xor ecx, ecx
test ax, ax
sete cl
mov edi, ecx
cmp byte [esi + 0xda2], 3
je 0x47fd53
cmp byte [esi + 0xdb0], 3
jne 0x47fd6b
xor ecx, ecx
cmp dword [esi + 0x51e8], ecx
jne 0x47fd6d
mov edi, edx
jmp 0x47fd6d
cmp ax, dx
jne 0x47fd30
push 3
pop edi
jmp 0x47fd41
xor ecx, ecx
cmp ax, 3
je 0x47fd7c
cmp word [esi + 0x57a], cx
je 0x47fd85
cmp word [esi + 0x199fc], di
je 0x47fdf1
movsx eax, di
sub eax, ecx
je 0x47fdc7
dec eax
je 0x47fdb6
dec eax
je 0x47fd98
dec eax
jne 0x47fdf1
push ecx
jmp 0x47fd99
push edx
lea ebx, [esi + 0x5230]
push ebx
call fcn.004b79a9
push 0x35
push ebx
call fcn.004b78f0
mov word [esi + 0x199fc], di
jmp 0x47fdf1
push ecx
lea ebx, [esi + 0x5230]
push ebx
call fcn.004b79a9
push 0x34
jmp 0x47fda7
lea ebx, [esi + 0x199fc]
cmp word [ebx], 1
je 0x47fdf1
push ecx
lea eax, [esi + 0x5230]
push eax
call fcn.004b79a9
push 0x34
lea eax, [esi + 0x5230]
push eax
call fcn.004b78f0
mov word [ebx], di
push 7
push esi
call fcn.004a53d4
xor edi, edi
inc edi
cmp eax, edi
jne 0x47fe44
cmp word [esi + 0x9e7], di
je 0x47fe44
mov ax, word [esi + 0x57a]
cmp ax, di
je 0x47fe1b
cmp ax, 2
jne 0x47fe44
test byte [esi + 0x51e8], 1
mov byte [ebp - 0x35], 0x36
mov byte [ebp - 0x36], 0xf8
mov byte [ebp - 0x38], 0xc0
mov byte [ebp - 0x37], 0
je 0x47fe38
mov byte [ebp - 0x37], 1
push 4
lea eax, [ebp - 0x38]
push eax
push esi
call fcn.0043dbe6
cmp dword [ebp - 0x22b4], edi
jne 0x47fe58
push dword [ebp - 0x22d0]
push esi
call fcn.004a51bc
push edi
lea eax, [ebp - 0x38]
push eax
push esi
mov byte [ebp - 0x38], 0x43
call fcn.0043dbe6
cmp byte [esi + 0x189db], 1
jne 0x47fe84
lea eax, [ebp - 0x22d8]
push eax
push 0x16
push 0x412358
push esi
call fcn.00493b72
push 5
push esi
call fcn.004a53d4
cmp eax, edi
pop edi
pop ebx
jne 0x47fe98
push esi
call fcn.0047dda6
mov ecx, dword [ebp - 4]
pop esi
call fcn.004a9585
leave
ret 4