Function at 0x46a6df
Capabilities:
Check os version
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x230
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x174]
push esi
push edi
mov dword [esp + 0x10], 0x4f833fcb
mov edi, edx
mov dword [esp + 8], 0xeefb6f65
xor esi, esi
mov dword [esp + 0x18], 0x2a1efe0c
mov dword [esp + 0x2c], esi
push 4
mov dword [esp + 0x38], edi
call fcn.00434f0f
xor eax, eax
inc esi
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], eax
jmp 0x46a740
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x40], 0xfff8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x46a730
mov dword [esp + 0xc], eax
jmp 0x46a75e
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x17c]
mov dword [ecx + edx*4], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x46a74c
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x46a778
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], eax
jl 0x46a884
mov edi, dword [esp + 0x17c]
mov dword [esp + 0x28], 0xffffffff
xor edx, edx
mov dword [esp + 0x2c], 8
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
push 0
mov ecx, dword [esp + ecx*4 + 0x44]
cmp ecx, 7
mov ecx, dword [esp + 0xc]
sete dl
cmp edx, ecx
mov ecx, dword [esp + 0x14]
pop edx
setne dl
add edx, dword [esp + ecx*4 + 0x40]
mov dword [esp + 0x28], edx
je 0x46a7d9
cmp dword [esp + 8], eax
je 0x46a7d9
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
xor edx, edx
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
push 0
mov ecx, dword [esp + ecx*4 + 0x44]
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x1c]
cmp ecx, 0xfffffffe
mov ecx, dword [esp + 0x14]
setne dl
mov ecx, dword [esp + ecx*4 + 0x44]
cmp edx, ecx
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
push 0
mov ecx, dword [esp + ecx*4 + 0x44]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
setg dl
mov dword [edi + 8], 0x9d073d4c
mov dword [esp + 0x30], edx
xor edx, edx
cmp dword [esp + 0x30], ecx
setg dl
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + ecx*4 + 0x44]
mov ecx, dword [esp + 0x14]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
cmp edx, ecx
mov ecx, dword [esp + 0x44]
pop edx
setne dl
sub edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0x40]
cmp dword [esp + 0x2c], ecx
setg dl
mov dword [esp + 0x2c], edx
dec dword [esp + 0x10]
jns 0x46a78d
mov edi, dword [esp + 0x34]
xor esi, esi
inc esi
lea ecx, [esp + 0x17c]
call fcn.00434fe1
mov dword [esp + 8], 0x67a8
lea ecx, [esp + 0x1ac]
mov eax, 0xa073
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
or eax, 0xffffffff
mov dword [esp + 0x24], 0x32b9
mov dword [esp + 0x30], 0x3623
mov dword [esp + 0xc], 0x4e401d93
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x28], 0x18003dbe
mov dword [esp + 0x18], 0xa47f
mov dword [esp + 0x2c], 0x2bd63adb
push 3
call fcn.00434f0f
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x46a931
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x130], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x46a91e
mov dword [esp + 0x10], eax
jmp 0x46a94e
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x4c], 0xffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x46a93e
mov dword [esp + 0x10], eax
jmp 0x46a969
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x110], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x46a95a
mov dword [esp + 0x10], eax
jmp 0x46a988
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xe8], 0xc02ee360
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x46a975
mov dword [esp + 0x10], eax
jmp 0x46a9ab
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1ac]
mov dword [ecx + edx*4], 0xfffb
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x46a995
mov ecx, dword [esp + 0x138]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
add ecx, edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0xc]
imul edx, dword [esp + 8]
mov ecx, dword [esp + 0xa4]
add ecx, 0x914b
push 0
add edx, ecx
mov ecx, dword [esp + 0xa0]
cmp edx, ecx
pop ecx
sete cl
xor edx, edx
cmp ecx, 0xb8a
mov ecx, dword [esp + 0x4c]
setle dl
inc dword [esp + 0x4c]
cmp ecx, edx
jge 0x46aa1f
mov ecx, eax
cmp dword [esp + 0x4c], eax
je 0x46aa21
mov ecx, esi
mov edx, dword [esp + 0x24]
sub edx, ecx
mov ecx, dword [esp + 0x9c]
sub edx, ecx
mov ecx, dword [esp + 8]
dec dword [esp + 0x24]
cmp edx, ecx
mov edx, dword [esp + 8]
mov ecx, esi
cmovg ecx, eax
imul edx, ecx
mov ecx, dword [esp + 8]
sub ecx, edx
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x110]
mov ecx, dword [esp + 0xa4]
cmp esi, ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0xe0]
je 0x46aa82
mov ecx, dword [esp + 0x134]
mov ecx, dword [esp + 0xa4]
xor edx, edx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xd8]
mov esi, dword [esp + 0xec]
mov ecx, dword [esp + 0xec]
imul esi, ecx
mov ecx, dword [esp + 0xa4]
cmp esi, ecx
setge dl
cmp edx, dword [esp + 0xdc]
jle 0x46aad7
cmp dword [esp + 0x134], eax
je 0x46aad7
xor ecx, ecx
lea esi, [ecx + 1]
jmp 0x46aad9
mov esi, eax
mov ecx, dword [esp + 0x138]
xor edx, edx
cmp ecx, 0xfffffffb
setne dl
xor ecx, ecx
cmp edx, esi
setl cl
cmp ecx, dword [esp + 0x28]
je 0x46ab02
cmp dword [esp + 0x2c], eax
je 0x46ab02
xor esi, esi
inc esi
mov eax, esi
jmp 0x46ab05
xor esi, esi
inc esi
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x1ac]
setg cl
mov dword [esp + 0xec], ecx
mov dword [eax + 4], ecx
mov dword [esp + 0xe4], ecx
lea ecx, [esp + 0x1ac]
call fcn.00434fe1
mov eax, dword [0xaa9290]
test al, 1
jne 0x46abbe
or eax, esi
xor esi, esi
push esi
push esi
mov dword [0xaa9290], eax
mov dword [0xaa92a0], esi
mov dword [0xaa92a4], esi
call fcn.00404112
mov dword [0xaa92a0], eax
mov ecx, 0xaa92a8
mov dword [esp + 0x140], eax
lea eax, [esp + 0x140]
push eax
push 0x10
push esi
lea eax, [esp + 0x120]
mov dword [0xaa92a8], esi
push eax
mov dword [0xaa92b0], esi
mov dword [0xaa92bc], 0x3f800000
mov dword [0xaa92ac], esi
call fcn.00403e48
push 0x4add76
mov dword [0xaa92b4], 7
mov dword [0xaa92b8], 8
call fcn.0048a031
pop ecx
mov dword [esp + 0x10], 0x822e6e7f
lea ecx, [esp + 0xf0]
mov dword [esp + 0x20], 0xa971867b
mov dword [esp + 0x28], 0x4d8d955a
push 2
call fcn.00434f0f
xor eax, eax
inc eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
xor eax, eax
mov dword [esp + 8], eax
jmp 0x46ac21
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xf0]
mov dword [ecx + edx*4], 0xc1c5
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46ac0b
cmp dword [esp + 0x10], eax
je 0x46ac32
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf0]
cmp dword [ecx], 1
setg dl
sub edx, 0x26547579
sub edx, dword [ecx + 4]
neg edx
sbb edx, edx
inc edx
imul edx, dword [ecx + 4]
mov dword [esp + 0x124], edx
mov dword [esp + 0x10], 0x1b
cmp dword [esp + 0x10], 0x34
jl 0x46ad0d
xor edi, edi
inc edi
mov dword [esp + 8], edi
mov dword [esp + 0x18], 0xffffffff
cmp dword [esp + 0x124], eax
jne 0x46ac9d
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x124]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0xf0]
cmp dword [ecx], 3
mov ecx, dword [esp + 8]
sbb esi, esi
xor edx, edx
inc esi
sub esi, ecx
mov ecx, dword [esp + 8]
cmp ecx, esi
setg dl
neg edx
je 0x46acdb
mov ecx, dword [esp + 0xf0]
cmp dword [ecx], eax
mov ecx, edi
jne 0x46acdd
mov ecx, eax
mov esi, dword [esp + 8]
xor edx, edx
imul esi, ecx
mov dword [esp + 0x11c], esi
mov ecx, dword [esp + 8]
cmp ecx, esi
setle dl
mov dword [esp + 0x18], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x34
jge 0x46ac84
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0xf0]
call fcn.00434fe1
imul eax, dword [esp + 0x64], 0x2710
add eax, edi
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push eax
call fcn.0046c293
mov edi, dword [eax]
xor eax, eax
mov dword [esp + 0xc], 0x125d16df
mov dword [esp + 0x30], 0xf5fa3187
mov dword [esp + 0x28], edi
mov dword [esp + 8], eax
jmp 0x46ad68
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x148], 0xfffffff6
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46ad55
push 2
mov dword [esp + 0x10], eax
pop esi
jmp 0x46add4
mov dword [esp + 8], eax
jmp 0x46ad8e
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x78], 0xfffffff8
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46ad7e
mov dword [esp + 0x78], eax
jmp 0x46adb4
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + ecx*4 + 0x148]
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x148], edx
inc dword [esp + 0x78]
cmp dword [esp + 0x78], esi
jle 0x46ad9a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + ecx*4 + 0x148]
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x148], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x46ad78
mov dword [esp + 0xc], 9
cmp dword [esp + 0xc], 0xffffffe8
jle 0x46aecf
xor esi, esi
push 3
lea ecx, [esp + 0x1a4]
call fcn.00434f0f
xor edi, edi
lea ecx, [esp + 0x188]
inc edi
push edi
call fcn.00434f0f
mov dword [esp + 0x10], esi
jmp 0x46ae26
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1a0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x46ae13
xor edx, edx
mov dword [esp + 0x10], esi
inc edx
jmp 0x46ae4c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x188]
mov dword [eax + ecx*4], 0xbc999589
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x46ae36
mov ecx, dword [esp + 0x1a0]
mov dword [ecx + 4], esi
mov dword [esp + 8], esi
jmp 0x46ae72
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x60], 0x28a062b0
inc dword [esp + 8]
cmp dword [esp + 8], edx
jl 0x46ae62
mov dword [esp + 0x60], esi
jmp 0x46ae8f
mov eax, dword [esp + 0x188]
mov dword [eax], 0xfffffffc
inc dword [esp + 0x60]
cmp dword [esp + 0x60], 3
jne 0x46ae7e
inc dword [ecx + 4]
cmp dword [ecx + 4], 0x19
jne 0x46ae5c
lea ecx, [esp + 0x188]
call fcn.00434fe1
lea ecx, [esp + 0x1a0]
call fcn.00434fe1
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe8
jg 0x46adef
mov edi, dword [esp + 0x28]
xor eax, eax
push 2
pop esi
test edi, edi
je 0x46b1dd
mov dword [esp + 8], 0xe0648261
mov dword [esp + 8], eax
cmp dword [esp + 8], 0xf
jne 0x46af16
xor edi, edi
inc edi
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46af07
push eax
push eax
push 0x3f
push eax
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 0xf
je 0x46aeed
mov edi, dword [esp + 0x28]
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46af2d
push eax
push 0x1e61
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
mov dword [esp + 0xc], 0xffff
lea ecx, [esp + 0x84]
push esi
mov dword [esp + 0xc0], edi
call fcn.00434f0f
xor esi, esi
lea ecx, [esp + 0x1c4]
inc esi
push esi
call fcn.00434f0f
push 3
lea ecx, [esp + 0x1bc]
call fcn.00434f0f
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x46af85
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [ecx + edx*4], 0xde19d29b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x46af6f
mov dword [esp + 0x10], eax
jmp 0x46afa8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c4]
mov dword [ecx + edx*4], 0x16e074f0
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x46af92
mov dword [esp + 0x10], eax
jmp 0x46afca
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1b8]
mov dword [ecx + edx*4], 0xfffffff8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x46afb4
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x46afee
push eax
push 0x215c
push 0x117a
call dword [sym.imp.KERNEL32.dll_GetCPInfoExW]
xor eax, eax
cmp dword [esp + 0xc], eax
je 0x46b19c
mov dword [esp + 0x10], 0xe9f9034e
mov dword [esp + 0x34], 0x658d83f7
mov dword [esp + 8], eax
jmp 0x46b021
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x118], 0xffffffff
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b00e
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], esi
jg 0x46b1b4
mov ecx, dword [esp + 0x1b8]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x84]
cmp dword [edx + ecx*4], eax
je 0x46b0bb
mov ecx, dword [edx]
dec ecx
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0x10]
push 0
sbb edx, edx
neg edx
cmp edx, ecx
pop ecx
setl cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x18], ecx
setl dl
cmp edx, 0x42c78ef8
je 0x46b09c
cmp dword [esp + 0x10], eax
jne 0x46b09c
mov esi, eax
jmp 0x46b0a1
xor ecx, ecx
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x20]
xor edx, edx
cmp esi, ecx
mov ecx, dword [esp + 0x10]
setne dl
sub ecx, edx
jne 0x46b0b8
mov esi, eax
jmp 0x46b0bb
xor esi, esi
inc esi
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
push 0
cmp esi, dword [ecx + edx*4]
pop ecx
setl cl
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
add ecx, 0xb6fd
add edx, ecx
mov ecx, dword [esp + 0x84]
sub edx, dword [ecx + esi*4]
mov ecx, dword [esp + 0x1c4]
neg edx
sbb edx, edx
inc edx
mov dword [ecx], edx
jne 0x46b109
test edx, edx
jne 0x46b109
mov edx, eax
jmp 0x46b10e
xor ecx, ecx
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x20]
sub edx, ecx
mov ecx, dword [esp + 0x84]
sub edx, dword [ecx]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x34], edx
xor edx, edx
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x34]
cmp ecx, 0x46d767c8
setg dl
xor ecx, ecx
cmp edx, 0x307b
setge cl
xor edx, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
cmp ecx, dword [edi + 4]
setge dl
xor ecx, ecx
cmp edx, 1
setle cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x18]
imul esi, dword [ecx]
mov ecx, dword [esp + 0x118]
cmp esi, ecx
setl dl
cmp edx, 0xffffffff
mov edx, dword [esp + 0x2c]
sbb ecx, ecx
xor esi, esi
inc ecx
inc esi
mov dword [edx + 4], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x46b047
jmp 0x46b1b4
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b1b4
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
lea ecx, [esp + 0x1b8]
call fcn.00434fe1
lea ecx, [esp + 0x1c4]
call fcn.00434fe1
lea ecx, [esp + 0x84]
call fcn.00434fe1
jmp 0x46c20f
mov dword [esp + 0xc], 0x16df251d
xor edi, edi
mov dword [esp + 8], 0xd0107893
inc edi
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
jmp 0x46b20a
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x44], 0x4a8c6a53
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46b1fa
mov dword [esp + 0xc], eax
jmp 0x46b325
push edi
lea ecx, [esp + 0x198]
call fcn.00434f0f
push dword [esp + 0x114]
movdqa xmm0, xmmword [0xaa1d10]
lea eax, [esp + 0x20c]
push eax
xor esi, esi
lea eax, [esp + 0x200]
push eax
push esi
lea ecx, [esp + 0x10c]
mov dword [esp + 0x10c], esi
movdqu xmmword [esp + 0x208], xmm0
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], esi
call fcn.00435052
mov dword [esp + 8], esi
jmp 0x46b28e
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x194]
mov dword [eax + ecx*4], 0x900fdb69
inc dword [esp + 8]
cmp dword [esp + 8], edi
jl 0x46b278
mov dword [esp + 8], 0xfffffff6
xor edx, edx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x44]
cmp ecx, eax
mov eax, dword [esp + 8]
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x44]
setge cl
imul ecx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x44]
add eax, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x18]
mov eax, dword [esp + 0x194]
setg cl
imul edx, ecx
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x44]
cmp edx, eax
mov eax, dword [esp + 0xfc]
sete cl
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xfc]
call fcn.00434fe1
lea ecx, [esp + 0x194]
call fcn.00434fe1
inc dword [esp + 0xc]
xor eax, eax
cmp dword [esp + 0xc], eax
jle 0x46b219
mov dword [esp + 0x10], eax
jmp 0x46b36a
mov dword [esp + 0x18], 0x826f393
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx*4 + 0x44]
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x44], edx
mov dword [esp + 8], eax
jmp 0x46b35f
mov dword [esp + 0x18], 0xaeb382e5
dec dword [esp + 8]
cmp dword [esp + 8], 0xffffffec
jl 0x46b353
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x46b335
mov ecx, dword [0xaa9290]
test cl, 2
jne 0x46b401
push eax
or ecx, 2
mov dword [0xaa9270], eax
push eax
mov dword [0xaa9290], ecx
mov dword [0xaa9274], eax
call fcn.00404112
mov dword [0xaa9270], eax
xor esi, esi
mov dword [esp + 0x12c], eax
mov ecx, 0xaa9278
lea eax, [esp + 0x12c]
mov dword [0xaa9278], esi
push eax
push 0x10
push esi
lea eax, [esp + 0x1ec]
mov dword [0xaa9280], esi
push eax
mov dword [0xaa928c], 0x3f800000
mov dword [0xaa927c], esi
call fcn.00403e48
push 0x4add71
mov dword [0xaa9284], 7
mov dword [0xaa9288], 8
call fcn.0048a031
pop ecx
xor eax, eax
xor esi, esi
xorps xmm0, xmm0
movdqu xmmword [esp + 0xc8], xmm0
inc esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xbca0becc
mov dword [esp + 8], eax
jmp 0x46b432
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x68], 0x57ad
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46b422
mov dword [esp + 0xc], 0xe
jmp 0x46b45b
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b457
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
xor eax, eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xc
je 0x46b443
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], eax
jl 0x46b54f
mov dword [esp + 0x10], 0xffffffff
cmp dword [esp + 0x10], eax
jne 0x46b498
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0xc]
je 0x46b48c
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x68]
sub esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setl dl
xor ecx, ecx
cmp edx, 0xfffffff9
setg cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x18], ecx
setg dl
xor esi, esi
imul ecx, edx, 0xfffff67b
inc esi
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
jmp 0x46b53f
mov dword [esp + 8], eax
jmp 0x46b514
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx*4 + 0x68]
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x68], edx
mov ecx, dword [esp + 0x10]
cmp dword [esp + ecx*4 + 0x68], eax
jne 0x46b51a
inc dword [esp + 8]
cmp dword [esp + 8], esi
jle 0x46b4f6
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b53b
push 0x25cc
push eax
push eax
push eax
push 0x2094
push eax
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x46b4f0
dec dword [esp + 0xc]
jns 0x46b470
lea eax, [esp + 0x64]
push eax
call fcn.0046c2f5
push 2
pop edx
mov edi, dword [eax]
xor eax, eax
mov dword [esp + 0x1c], 0x585ed065
mov dword [esp + 0x1c], 0x40f2fdad
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], eax
jmp 0x46b589
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x108], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x46b57a
mov dword [esp + 0xc], eax
jmp 0x46b5a5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x50], 0xb1cecb45
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x46b595
mov dword [esp + 0x54], eax
jmp 0x46b676
mov dword [esp + 8], eax
xor edx, edx
mov dword [esp + 0x20], 0x1d534a2c
mov dword [esp + 0x24], 0x688cdf2
mov dword [esp + 0x18], 0x28cbd6cd
mov ecx, dword [esp + 8]
dec dword [esp + 8]
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + ecx*4 + 0x108]
mov dword [esp + 0x1c], 0x53a34c86
mov ecx, dword [esp + 0x1c]
test ecx, ecx
setle dl
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x50], eax
jne 0x46b61b
cmp dword [esp + 0x1c], 0xffffffff
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x89ec0021
mov ecx, eax
jae 0x46b61d
mov ecx, esi
cmp ecx, dword [esp + 8]
jg 0x46b627
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + ecx*4 + 0x108]
mov ecx, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 8]
add ecx, 0xfff8
add ecx, edx
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
sets dl
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
mov ecx, dword [esp + ecx*4 + 0x108]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
inc dword [esp + 0x54]
cmp dword [esp + 0x54], esi
jle 0x46b5b4
cmp byte [ebp + 0xc], al
jne 0x46b68d
test edi, edi
jne 0x46be9c
mov dword [esp + 8], 0xffffffff
mov dword [esp + 8], 0xffffffe5
jmp 0x46b6c5
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], 0x6432a276
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b6c1
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 0xfffffff3
jge 0x46b69f
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x228]
mov ecx, dword [esp + 0x64]
push eax
call fcn.00435282
mov esi, eax
lea edi, [esp + 0xcc]
xor eax, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [ebp + 0xc], al
je 0x46b821
cmp dword [esp + 0xd0], eax
je 0x46b821
mov dword [esp + 8], 0xffff
mov edx, 0x9ec71cb2
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], 0x47909b79
mov dword [esp + 0x1c], 0x489f7a9d
mov dword [esp + 0xc], 0xfffffff6
mov dword [esp + 0x3c], 0x951bb35b
push 0xfffffffffffffffd
pop ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 8
mov dword [esp + 0x1c], 4
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 8]
cmp edx, ecx
push eax
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
cmp ecx, edx
pop ecx
setle cl
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x18], ecx
setle dl
add edx, dword [esp + 0x3c]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0xc]
jg 0x46b7b2
cmp dword [esp + 0x20], eax
jne 0x46b7b2
xor esi, esi
mov edx, eax
inc esi
jmp 0x46b7b7
xor esi, esi
inc esi
mov edx, esi
xor ecx, ecx
cmp edx, esi
push 0
setne cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x1c], ecx
setle dl
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
neg edx
mov dword [esp + 0x40], ecx
sbb edx, edx
neg edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
cmp ecx, edx
pop ecx
setl cl
neg ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0xc4], ecx
jmp 0x46b824
xor esi, esi
inc esi
mov edi, dword [esp + 0x28]
test edi, edi
jne 0x46be9c
cmp dword [esp + 0xc8], edi
jle 0x46be9c
mov dword [esp + 0x10], 0xfffffffc
mov dword [esp + 0x10], 0x1b
jmp 0x46b973
push esi
lea ecx, [esp + 0x158]
call fcn.00434f0f
xor eax, eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
jmp 0x46b881
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x154]
mov dword [ecx + edx*4], eax
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46b86f
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], eax
jg 0x46b905
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b8ab
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
xor eax, eax
mov ecx, dword [esp + 0xc]
xor edx, edx
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x154]
mov esi, dword [esp + 0x2c]
push 0
cmp dword [ecx], 0xfffffff6
mov ecx, dword [esp + 0x10]
setle dl
cmp edx, ecx
mov edx, dword [esp + 0x158]
pop ecx
setg cl
add ecx, dword [edx + edi*4]
mov dword [esp + 0x18], ecx
xor ecx, ecx
cmp dword [esp + 0x18], 0x1449c9fb
setne cl
mov dword [edx + esi*4], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jle 0x46b891
xor esi, esi
inc esi
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], eax
jl 0x46b963
mov dword [esp + 8], 0x3773672
mov dword [esp + 8], eax
jmp 0x46b957
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b938
push eax
push 0x1a63
push eax
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
xor eax, eax
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46b953
push eax
push 0x1f61
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], eax
jle 0x46b91d
dec dword [esp + 0xc]
jns 0x46b90f
lea ecx, [esp + 0x154]
call fcn.00434fe1
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff7
jg 0x46b852
mov dword [esp + 0x1c], 0xa6b950ba
xor eax, eax
mov dword [esp + 0x30], 0xbe6286c
mov dword [esp + 0x30], 0xbe74fd57
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x30], 0x50ba
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], 0x5a323196
mov dword [esp + 0x30], 0x392614f5
mov dword [esp + 8], eax
jmp 0x46b9d5
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x1f0], 0x5a7dd9ae
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46b9c2
cmp dword [esp + 0x1c], eax
je 0x46ba05
cmp dword [esp + 0x24], esi
jle 0x46b9ea
mov esi, eax
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp esi, ecx
sete dl
imul edx, dword [esp + 0x24]
test edx, edx
je 0x46ba05
xor edi, edi
inc edi
mov esi, edi
jmp 0x46ba0a
xor edi, edi
mov esi, eax
inc edi
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp esi, ecx
setne dl
cmp edx, 0xe868
jle 0x46ba28
mov ecx, edi
cmp dword [esp + 0x1f4], eax
jne 0x46ba2a
mov ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
mov ecx, 0xf665683c
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], ecx
lea ecx, [esp + 0x160]
mov dword [esp + 0x2c], 0xb40194dd
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], 0x737a9a97
mov dword [esp + 0x1c], 0xf5f49900
mov dword [esp + 0x48], edi
mov dword [esp + 0x80], 0xfffffff6
mov dword [esp + 0x3c], 0xc9d5fac1
mov dword [esp + 0x5c], 0xdfa831eb
mov dword [esp + 0x144], 6
mov dword [esp + 0x13c], eax
mov dword [esp + 0x20], 5
mov dword [esp + 0x1c], 0xfffffffb
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], 0x45c1d102
push 3
call fcn.00434f0f
mov dword [esp + 0x24], 0xf9f7c8b1
xor eax, eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x48], 0x3c489718
mov dword [esp + 0x10], edi
mov dword [esp + 0x48], 0x44cad706
mov dword [esp + 8], eax
jmp 0x46bb24
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x160]
mov dword [ecx + edx*4], 0xfffffff9
inc dword [esp + 8]
cmp dword [esp + 8], 3
jl 0x46bb0e
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x178]
inc dword [esp + 0x24]
cmp ecx, edx
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0xc]
cmovg edi, eax
mov dword [ecx + 4], 0x2c40
mov ecx, dword [esp + 0x13c]
inc dword [esp + 0xc]
cmp ecx, edx
jne 0x46bb67
xor ecx, ecx
lea esi, [ecx + 1]
jmp 0x46bb69
mov esi, eax
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x144]
mov ecx, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
cmp esi, ecx
setle dl
mov dword [esp + 0x20], edx
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp ecx, 0xffff
setne dl
sub edx, dword [esp + 0x2c]
neg edx
sbb edx, edx
inc edx
sub edx, dword [esp + 0x5c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edi, edx
setge cl
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x178], eax
je 0x46bc77
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x90], eax
jne 0x46bbda
cmp dword [esp + 0x3c], eax
jne 0x46bbda
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0xc], eax
je 0x46bbed
cmp dword [esp + 0x3c], eax
je 0x46bbed
xor esi, esi
inc esi
mov ecx, esi
jmp 0x46bbf2
xor esi, esi
mov ecx, eax
inc esi
dec dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x50ec3193
mov ecx, esi
setl dl
sub ecx, edx
add ecx, dword [esp + 0x10]
jne 0x46bc1b
mov edx, eax
cmp dword [esp + 0x10], eax
je 0x46bc1d
mov edx, esi
mov ecx, dword [esp + 0x160]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x48]
add esi, edx
xor edx, edx
cmp esi, ecx
setg dl
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x1c], ecx
jge 0x46bc4b
mov ecx, dword [esp + 0x80]
mov ecx, dword [esp + 0x94]
xor edx, edx
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x690d9220
setl dl
cmp edx, 0xffff
jb 0x46bc77
xor esi, esi
inc esi
mov eax, esi
jmp 0x46bc7a
xor esi, esi
inc esi
lea ecx, [esp + 0x160]
mov dword [esp + 0x2c], eax
call fcn.00434fe1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x46be96
cmp dword [esp + 0x30], 0
je 0x46be96
mov dword [esp + 0xc], esi
lea ecx, [esp + 0x1e4]
xor esi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x48], 0xec51
push 3
call fcn.00434f0f
xor eax, eax
inc esi
mov dword [esp + 0xc], eax
jmp 0x46bcda
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x58], 0xc204e2db
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x46bcca
mov dword [esp + 0xc], eax
jmp 0x46bcfc
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e4]
mov dword [ecx + edx*4], 0x7b3fa872
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x46bce6
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x46bd16
push eax
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
xor eax, eax
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], eax
jg 0x46be73
mov dword [esp + 0x1c], 3
mov dword [esp + 0x5c], 0x218ad385
mov dword [esp + 8], eax
jmp 0x46bd4d
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0xac], 0x719d8726
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x46bd3a
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0xac], ecx
jge 0x46bd8b
cmp dword [esp + 0x58], eax
jne 0x46bd8b
mov esi, eax
mov ecx, dword [esp + 0x58]
xor edx, edx
cmp ecx, esi
setge dl
xor ecx, ecx
cmp edx, 0xcf0adc10
setne cl
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x30]
cmp ecx, 0xfffffffd
mov ecx, dword [esp + 0xb4]
setne dl
imul edx, ecx
mov ecx, dword [esp + 0xb4]
sub edx, ecx
xor ecx, ecx
cmp edx, 0xffffffff
setge cl
cmp dword [esp + 0xc], ecx
jge 0x46bddd
mov ecx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x48]
xor edi, edi
inc edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0x30], 0x3adcfec7
cmp dword [esp + 0x58], eax
jne 0x46be04
mov ecx, eax
cmp dword [esp + 0xb4], eax
je 0x46be06
mov ecx, edi
xor edx, edx
mov dword [esp + 0x1c], 0xfffb
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0x1c]
push 0
setne dl
cmp edx, ecx
pop ecx
setge cl
mov dword [esp + 0xb4], ecx
test ecx, ecx
je 0x46be35
mov ecx, edi
cmp dword [esp + 0x1c], eax
jne 0x46be37
mov ecx, eax
imul ecx, ecx, 0x1ec8
xor edx, edx
push 1
cmp ecx, 8
mov ecx, dword [esp + 0x60]
setge dl
cmp edx, 0xcdab0b82
sbb esi, esi
xor edx, edx
neg esi
cmp esi, ecx
pop esi
setg dl
mov dword [esp + 0x30], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], eax
jle 0x46bd24
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x1e4]
call fcn.00434fe1
mov ecx, edi
call fcn.0046a26d
mov edi, eax
lea eax, [esp + 0x64]
push eax
call fcn.0046c2f5
mov dword [eax], edi
jmp 0x46be9a
mov edi, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x30], 0x7059141a
mov dword [esp + 8], eax
jmp 0x46beb6
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x38], esi
inc dword [esp + 8]
cmp dword [esp + 8], esi
jl 0x46beaa
mov dword [esp + 0x38], eax
cmp dword [esp + 0x38], 0x1d
jne 0x46bf1a
mov dword [esp + 0x28], 0xbe13
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
shl edx, 2
cmp edx, ecx
push 0
pop ecx
sete cl
cmp ecx, dword [esp + 0x28]
jl 0x46bef2
cmp dword [esp + 0x28], eax
jne 0x46bef4
mov esi, eax
mov ecx, dword [esp + 0x28]
xor edx, edx
cmp esi, ecx
setg dl
mov dword [esp + 0x30], edx
cmp dword [esp + 0x38], eax
jne 0x46bf17
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 0x1d
push 1
pop esi
je 0x46bec7
xor esi, esi
inc esi
lea ecx, [esp + 0xc8]
call fcn.0043670d
mov dword [esp + 0xc], 0xf43b7c7c
mov dword [esp + 0x28], 0x97eede0b
mov dword [esp + 0x18], 0xee49
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x46bfc5
mov dword [esp + 8], 0xef307d7
mov dword [esp + 0x18], eax
cmp dword [esp + 8], eax
jne 0x46bf77
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x28]
cmp ecx, edx
push 0
pop ecx
setg cl
mov edx, eax
add ecx, 9
je 0x46bf79
mov edx, esi
xor ecx, ecx
cmp edx, 0xffffffff
setne cl
imul ecx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x18]
je 0x46bf9a
cmp dword [esp + 8], eax
jne 0x46bf9c
mov esi, eax
mov ecx, dword [esp + 8]
xor edx, edx
cmp ecx, esi
push 1
setle dl
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
pop esi
lea ecx, [ecx*4 + 8]
sub ecx, dword [esp + 8]
mov dword [esp + 0x28], ecx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffee
jne 0x46bf4e
test edi, edi
je 0x46c20f
mov dword [esp + 0xc], 0xffffffff
xor esi, esi
mov dword [esp + 0x20], 0x2ba29f58
inc esi
mov dword [esp + 0x18], esi
mov dword [esp + 8], eax
jmp 0x46c004
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x218], 0xfffffffa
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x46bff1
mov dword [esp + 0xc], eax
jmp 0x46c029
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46c025
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor eax, eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xa
jg 0x46c011
cmp dword [esp + 0xc], eax
je 0x46c03a
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov eax, dword [esp + 0xc]
setns dl
xor ecx, ecx
neg edx
cmp eax, edx
mov edx, dword [esp + 0x34]
setle cl
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], esi
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x859b
setle cl
mov dword [esp + 0x224], ecx
mov ecx, edi
call fcn.0046a598
mov edi, eax
mov dword [esp + 0xc], 0x643cdf98
xor eax, eax
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc], eax
jmp 0x46c0b5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x1d0], 0xc93b4e1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x46c0a2
mov dword [esp + 0xc], eax
jmp 0x46c0d5
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x208], 0x4f6cbcb1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x46c0c2
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 3
jg 0x46c200
xor edi, edi
inc edi
mov dword [esp + 8], 0x71658a6
mov dword [esp + 8], eax
jmp 0x46c108
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x70], eax
inc dword [esp + 8]
cmp dword [esp + 8], 2
jl 0x46c0fc
mov dword [esp + 0x74], eax
jmp 0x46c1bf
mov dword [esp + 8], 0x9fcfbce0
mov ecx, dword [esp + 0xc]
push 0
mov ecx, dword [esp + ecx*4 + 0x1d4]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
sub edx, 0xfb0b
neg edx
sbb edx, edx
inc edx
add edx, ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx*4 + 0x1d4]
cmp ecx, edx
mov ecx, dword [esp + 0x1d8]
pop edx
setne dl
cmp edx, ecx
push 0
pop ecx
setle cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + ecx*4 + 0x1d0]
cmp edi, ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [esp + 0x30]
setne dl
add edx, 0x501874da
imul edx, dword [esp + 0x74]
mov dword [esp + 0x20c], edx
mov dword [esp + 8], eax
jmp 0x46c1b4
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x46c1b0
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
xor eax, eax
inc dword [esp + 8]
cmp dword [esp + 8], 3
jle 0x46c19b
inc dword [esp + 0x74]
cmp dword [esp + 0x74], 3
jle 0x46c118
mov dword [esp + 8], eax
jmp 0x46c1e3
mov ecx, dword [esp + 8]
mov dword [esp + ecx*4 + 0x208], 0x16488a97
inc dword [esp + 8]
cmp dword [esp + 8], 4
jl 0x46c1d0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jle 0x46c0ee
mov edi, dword [esp + 0xbc]
lea eax, [esp + 0x98]
push eax
call fcn.0046c293
mov dword [eax], edi
mov eax, dword [ebp + 8]
lea esi, [esp + 0xbc]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret