Function at 0x4109d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x160
push esi
push edi
mov edi, ecx
mov dword [esp + 0x44], edi
mov eax, dword [edi + 0xec]
cmp eax, 0xed8
jge 0x444cc3
inc eax
mov dword [edi + 0xec], eax
cmp eax, 1
je 0x410ec3
cmp byte [edi + 0xfc], 0
mov byte [edi + 0x144], 0
jne 0x410ce4
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
cmp byte [edi + 0x144], 0
mov edx, 2
jne 0x410ce4
cmp byte [0x4c5281], 0
jne 0x444d10
cmp byte [0x4c57e8], 0
jne 0x444d22
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
jne 0x410e10
cmp byte [0x4c5282], 1
je 0x444d97
cmp dword [edi + 0xf8], 1
je 0x445c39
mov edx, 2
cmp dword [0x4c64a8], 0
jne 0x444db4
cmp byte [0x4c5287], 1
je 0x444e74
cmp dword [edi + 0x454], 0
je 0x410b04
cmp byte [0x4c641c], 0
jne 0x410b04
mov esi, dword [edi + 0x44c]
lea eax, [edi + 0x44c]
mov byte [0x4c641c], 1
mov dword [esp + 0x14], 0
mov dword [esp + 8], eax
nop
test esi, esi
jne 0x410d0b
mov edi, dword [esp + 8]
lea esp, [esp]
mov eax, dword [edi]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x410d54
mov edi, dword [esp + 0x44]
mov byte [0x4c641c], al
cmp dword [esp + 0x14], eax
jg case.default.0x4459e6
lea edx, [eax + 2]
cmp byte [0x4c57bc], 0
je 0x410bcd
cmp byte [edi + 0x458], 1
je 0x410bcd
cmp byte [0x4c57e8], 1
je 0x410bcd
xor ecx, ecx
mov dword [esp + 0x9c], 0
mov eax, 8
mov dword [esp + 0xa0], 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420db6
add esp, 4
mov dword [esp + 0x98], eax
xor ecx, ecx
mov word [eax], cx
push 4
call fcn.00420db6
add esp, 4
test eax, eax
je 0x410f9c
mov dword [eax], 1
mov dword [esp + 0xa4], eax
jmp 0x410b90
cmp dword [0x4c57dc], 0
jne 0x444eb0
cmp byte [0x4c57bc], 0
je 0x44505a
mov esi, dword [esp + 0xa4]
dec dword [esi]
jne 0x410bcd
push dword [esp + 0x98]
call fcn.00420e2c
add esp, 4
push esi
call fcn.00420e2c
add esp, 4
cmp dword [edi + 0x184], 0
jne 0x445083
cmp byte [0x4c5930], 0
jne 0x445702
mov eax, dword [edi + 0xf8]
cmp eax, 7
je 0x44581f
cmp eax, 2
je 0x410e5f
cmp eax, 8
je 0x445af8
cmp eax, 9
je 0x445af8
cmp eax, 3
je 0x410e5f
cmp eax, 4
je 0x410e5f
cmp eax, 5
je 0x410e5f
cmp eax, 6
je 0x410e5f
mov esi, dword [ebp + 8]
inc dword [ebp + 8]
mov dword [edi + 0xf4], esi
cmp esi, dword [0x4c62a0]
jg 0x4459cb
test esi, esi
jle 0x4459cb
shl esi, 4
add esi, dword [0x4c62dc]
je 0x4459cb
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, 1
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], edx
movsx eax, word [eax + 8]
test eax, eax
jne 0x410d68
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0040e420
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x410de3
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
cmp ecx, 5
jge 0x410f89
mov dword [esp + 0x5c], 1
mov dword [esp + 0x50], 0
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
cmp byte [edi + 0xfc], 0
je 0x410a1f
mov eax, dword [edi + 0xec]
mov byte [edi + 0x144], 0
cmp eax, 1
je 0x410edd
dec eax
mov dword [edi + 0xec], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi]
cmp byte [eax + 0x11], 0
jne 0x410d4c
mov edi, dword [eax + 0x14]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, eax
xor edx, edx
sub eax, edi
cmp edi, 0x7fffffff
ja 0x444e8e
cmp ecx, 0x7fffffff
ja 0x410d37
cdq
mov edi, dword [esi]
test edx, edx
jl 0x410d4c
jg 0x410f4e
cmp eax, dword [edi + 0x18]
jae 0x410f4e
mov esi, dword [esi + 4]
jmp 0x410ad0
mov ecx, dword [eax]
cmp byte [ecx + 0x11], 0
jne 0x444e9f
mov eax, dword [eax + 4]
jmp 0x410ae2
cmp eax, 0x33
jne 0x410d7a
push esi
mov ecx, edi
call fcn.0040e6a0
jmp 0x410ca0
dec eax
cmp eax, 0x7e
ja case.0x410d8b.2
movzx eax, byte [eax + 0x410fc4]
jmp dword [eax*4 + 0x410fb0]
lea eax, [esp + 0x50]
mov ecx, edi
push eax
lea eax, [esp + 0x24]
push eax
push esi
push 0
call fcn.0040f460
test eax, eax
js 0x410ca0
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
je 0x410ca0
jmp 0x445903
lea eax, [esp + 0x6b]
mov ecx, edi
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x28]
push eax
push esi
push 0
call fcn.0040fce0
jmp 0x410da6
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x44591f
push esi
call fcn.00420e2c
add esp, 4
mov dword [esp + 0x58], 0
jmp 0x410cac
cmp dword [esp + 0x98], 0x12
je 0x444d81
mov ecx, dword [0x4c57d8]
cmp ecx, 0xffffffff
jne 0x444d34
lea eax, [esp + 0x94]
mov ecx, 0x4c57b0
push eax
call fcn.004031ce
test eax, eax
je 0x410ea5
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
je 0x410a65
jmp 0x410e10
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
cmp dword [edi + 0x2f0], 0
je 0x410e91
mov ecx, dword [edi + 0x2f8]
call fcn.0042049f
test edx, edx
jl 0x410e91
jg 0x410f2f
cmp eax, dword [edi + 0x2f0]
jae 0x410f2f
mov eax, dword [edi + 0xf8]
cmp eax, 3
jl case.default.0x4459e6
jmp 0x4459da
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x410e43
mov eax, dword [edi + 0x11c]
mov dword [esp + 0x40], eax
lea ecx, [ecx]
test eax, eax
je 0x410a05
jmp 0x444cde
mov ecx, edi
call fcn.00411070
cmp byte [edi + 0xfc], 1
je 0x410d01
mov ecx, edi
call fcn.00411093
push 0
call dword [sym.imp.USER32.dll_LockWindowUpdate]
push dword [0x4c52ac]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0x14c]
push 0
push 0
push 0
push eax
call esi
test eax, eax
jle 0x410d01
jmp 0x445c58
cmp dword [edi + 0xf8], 2
jne 0x410fa3
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
jmp case.default.0x4459e6
inc dword [esp + 0x14]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [esp + 0x44]
mov dword [edi + 0x14], eax
push dword [esi]
call fcn.00409e5d
mov ecx, dword [esi]
push 0
push 1
mov byte [ecx + 0x10], 1
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x4c]
inc eax
push eax
call fcn.0040b73c
mov eax, dword [esi]
mov byte [eax + 0x10], 0
jmp 0x410d4c
add ecx, 0xfffffffb
cmp ecx, 0xa
ja case.0x410f95.6
jmp dword [ecx*4 + 0x411044]
xor eax, eax
jmp 0x410b7e
mov dword [esp + 8], 0
jmp 0x44587c
push 0xffffffffffffffff
push 0x9a
mov byte [0x4c5280], 0
call fcn.00469e4a
or eax, 0xffffffff
jmp 0x410d03
push dword [eax]
mov ecx, edi
call fcn.00409e5d
test eax, eax
je 0x444cf9
mov eax, dword [eax + 0x10]
mov ecx, edi
push 1
inc eax
push eax
call fcn.00456349
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
call fcn.00456774
mov eax, dword [esp + 0x40]
jmp 0x410ed0
cmp byte [edi + 0x145], 0
je 0x410a84
jmp 0x410a3e
cmp dword [edi + 0xf8], 0
je 0x410a84
jmp 0x410a4b
cmp ecx, dword [0x4c5814]
jge 0x444d72
mov eax, dword [0x4c5810]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
test eax, eax
je 0x444d72
cmp dword [eax + 0x18], 0
je 0x444d72
lea eax, [esp + 0x94]
push eax
mov eax, dword [ecx]
push dword [eax + 0x18]
push dword [eax]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x410e43
jmp 0x410e2d
mov dword [0x4c57d8], 0xffffffff
jmp 0x410e2d
mov byte [edi + 0xfc], 1
mov dword [edi + 0xf8], 1
jmp 0x410a65
mov byte [0x4c5287], 0
mov byte [0x4c5282], 0
mov dword [edi + 0xf8], 1
jmp 0x410a72
mov eax, dword [0x4c64ac]
push eax
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0xc], ecx
call fcn.00420e2c
dec dword [0x4c64a8]
add esp, 4
mov dword [0x4c64ac], esi
neg esi
sbb esi, esi
xor ecx, ecx
and dword [0x4c64b0], esi
mov edx, dword [edi + 0x1c8]
mov dword [esp + 0x18], ecx
test edx, edx
je 0x444e15
mov esi, dword [edi + 0x1c4]
mov edi, dword [esp + 8]
mov eax, dword [esi + ecx*4]
mov eax, dword [eax]
test eax, eax
je 0x444e08
cmp dword [eax], edi
je 0x444e0d
inc ecx
cmp ecx, edx
jb 0x444dfb
mov edi, dword [esp + 0x44]
mov dword [esp + 0x18], ecx
cmp ecx, edx
je 0x444e64
mov eax, dword [edi + 0x1c4]
mov eax, dword [eax + ecx*4]
mov ecx, edi
mov eax, dword [eax]
add eax, 8
push eax
call fcn.00409e5d
mov ecx, dword [edi + 0x1c4]
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx]
add ecx, 0x18
push ecx
lea ecx, [edi + 0x14c]
call fcn.00408047
mov eax, dword [esi + 0x10]
mov ecx, edi
push 0
push 1
inc eax
push eax
call fcn.0040b73c
jmp case.default.0x4459e6
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edx, 2
jmp 0x410a91
cmp byte [0x4c5281], 0
jne 0x410a9e
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x410cd7
cmp ecx, 0x7fffffff
jbe 0x410d37
jmp 0x410d36
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.0046a188
jmp 0x410ae0
mov eax, dword [0x4c57e0]
lea ecx, [esp + 0x94]
mov esi, dword [eax]
push esi
call fcn.00486018
mov ecx, 0x4c57dc
call fcn.00463176
test esi, esi
je 0x444eda
push ecx
mov ecx, esi
call fcn.00486098
cmp dword [esp + 0x9c], 0
mov dword [0x4c6420], 0
je 0x410b90
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00409e5d
mov esi, eax
test esi, esi
je 0x410b90
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 1
call fcn.004098c0
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x12c]
push 0x4a2edc
mov dword [esp + 0x80], 1
mov dword [esp + 0x74], eax
call fcn.00407de1
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x134]
push eax
call fcn.004089b3
lea ecx, [esp + 0x12c]
call fcn.00405904
lea ecx, [esp + 0x70]
call fcn.004098c0
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0xfc]
push str._GUI_WINHANDLE
mov dword [esp + 0x80], 7
mov dword [esp + 0x74], eax
call fcn.00407de1
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x104]
push eax
call fcn.004089b3
lea ecx, [esp + 0xfc]
call fcn.00405904
lea ecx, [esp + 0x70]
call fcn.004098c0
mov eax, dword [esp + 0xac]
lea ecx, [esp + 0x11c]
push str._GUI_CTRLHANDLE
mov dword [esp + 0x80], 7
mov dword [esp + 0x74], eax
call fcn.00407de1
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x124]
push eax
call fcn.004089b3
lea ecx, [esp + 0x11c]
call fcn.00405904
mov byte [edi + 0x458], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0040b73c
lea ecx, [esp + 0x70]
mov byte [edi + 0x458], 0
call fcn.004098c0
lea ecx, [esp + 0x98]
call fcn.00405904
jmp case.default.0x4459e6
cmp dword [0x4c591c], 0
jne 0x445076
cmp dword [0x4c6420], 0x64
jge 0x445076
inc dword [0x4c6420]
push 0
jmp 0x445078
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x410baa
cmp byte [edi + 0x484], 1
je 0x410bda
xor eax, eax
mov byte [edi + 0x484], 1
push dword [edi + 0x188]
lea ecx, [esp + 0xf0]
mov dword [esp + 0x68], 0
mov dword [esp + 0xbc], 0x48fb84
mov dword [esp + 0x18], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
call fcn.00469a15
lea ecx, [edi + 0x184]
call fcn.0045d4f2
mov esi, dword [esp + 0xf0]
lea ecx, [esp + 0x80]
mov dword [esp + 0x88], 0
push dword [esi]
call fcn.00409960
mov esi, dword [esi + 4]
mov ecx, esi
call fcn.00409837
push dword [esi + 8]
mov ecx, edi
call fcn.00409e5d
mov edx, eax
mov dword [esp + 0x20], edx
mov ecx, dword [edx + 0x10]
push ecx
call fcn.00407068
mov dword [edi + 0xf4], ecx
mov esi, 3
cmp dword [edx + 0x14], 0
mov dword [esp + 0x3c], eax
jle 0x445298
mov edx, dword [esp + 0xf0]
add edx, 8
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], 0
jne 0x4451a5
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 4]
mov eax, dword [edx + esi*4 + 4]
cmp word [eax + 8], 0x33
je 0x445182
mov ecx, eax
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x44521b
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x445195
cmp eax, 0x1e
jne 0x44521b
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0
je 0x445164
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0x41
jne 0x4451d5
mov edx, dword [esp + 0x18]
inc esi
xor ecx, ecx
mov eax, dword [edx + esi*4]
movzx eax, word [eax + 8]
cmp ax, 0x47
jne 0x4451c8
inc ecx
jmp 0x445218
cmp ax, 0x48
jne 0x44520e
dec ecx
jns 0x445218
mov edx, dword [esp + 0x24]
push dword [edx]
lea ecx, [esp + 0xbc]
call fcn.004560ef
mov ecx, dword [esp + 0x64]
inc esi
mov eax, dword [esp + 0x20]
inc ecx
mov edx, dword [esp + 0x24]
add edx, 4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], edx
cmp ecx, dword [eax + 0x14]
jge 0x445289
mov eax, dword [esp + 0x3c]
jmp 0x44514c
cmp ax, 0x40
jne 0x445218
test ecx, ecx
je 0x4451d1
inc esi
jmp 0x4451b8
mov eax, dword [esp + 0x3c]
mov ecx, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4 + 4]
movsx eax, word [eax + 0xa]
push eax
push 0x91
call fcn.00469e4a
jmp 0x445259
mov ecx, esi
call fcn.00405904
push esi
call fcn.00420e2c
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x80]
call fcn.00409c90
lea ecx, [esp + 0xec]
call fcn.0045617e
lea ecx, [esp + 0xb8]
call fcn.0045617e
mov byte [edi + 0x484], 0
jmp 0x410bda
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
push dword [edx + 0x10]
call fcn.00408401
mov eax, dword [esp + 0x20]
mov esi, 3
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], 1
cmp dword [eax + 0x14], 1
jl 0x4454f0
mov eax, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x6c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], dx
jne 0x445300
mov eax, dword [ecx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x4452ed
cmp eax, 0x1e
jne 0x4452ee
mov edx, 0x100
inc esi
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], 0
je 0x4452d9
mov dword [esp + 0x6c], edx
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 8]
lea edx, [esi*4 + 4]
mov dword [esp + 0x24], 1
xor ecx, ecx
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi]
movzx eax, word [eax + 8]
cmp ax, 0x47
jne 0x44532c
inc ecx
jmp 0x445404
cmp ax, 0x48
jne 0x4453f6
dec ecx
jns 0x445404
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x18], eax
jle 0x4454ad
lea eax, [esi + 2]
mov dword [esp + 0x28], 0
mov dword [esp + 8], eax
mov ecx, edi
mov eax, dword [esp + 0x24]
add eax, esi
mov dword [esp + 0x30], 0
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x38], 1
push eax
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x48]
call fcn.00409ea0
test eax, eax
js 0x445593
mov eax, dword [esp + 0x6c]
or eax, 0x200
push 1
push eax
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
push dword [eax]
call fcn.004084c0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4453d6
push ecx
call fcn.004079dd
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x4453ef.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x4453ef.6
jmp dword [eax*4 + 0x445c8f]
cmp ax, 0x40
jne 0x445404
test ecx, ecx
je 0x44533d
inc esi
add edx, 4
jmp 0x445319
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x4453ef.6
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esp + 0x28]
jmp 0x445493
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x4453ef.6
lea ecx, [eax + 8]
jmp 0x44548a
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4453ef.6
push ecx
call fcn.00408cd4
jmp case.0x4453ef.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.00420e2c
add esp, 4
push dword [esp + 0x28]
jmp 0x445493
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4453ef.6
push ecx
call fcn.00456e7a
jmp case.0x4453ef.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4453ef.6
push ecx
call fcn.00456e8f
jmp case.0x4453ef.6
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x4453ef.6
mov ecx, eax
call fcn.00405904
push dword [esp + 8]
call fcn.00420e2c
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
jmp 0x4454ca
mov eax, dword [esp + 0x14]
or edx, 0x200
push 1
push edx
push dword [eax]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + esi*4]
push dword [eax]
call fcn.004084c0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
add dword [esp + 0x14], 4
add esi, eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], eax
cmp eax, dword [ecx + 0x14]
jle 0x4452bf
push 0x4b7dbc
lea ecx, [esp + 0x140]
call fcn.00407de1
mov esi, dword [esp + 0x80]
xor eax, eax
cmp dword [esp + 0x8c], 6
push 1
setne al
dec eax
and eax, esi
push 0
push eax
lea eax, [esp + 0x148]
push eax
call fcn.004084c0
lea ecx, [esp + 0x13c]
call fcn.00405904
mov eax, dword [esp + 0x20]
mov ecx, edi
push 0
push 0
mov eax, dword [eax + 0x10]
inc eax
push eax
call fcn.0040b73c
mov ecx, 0x4c6280
call fcn.004082df
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x445570
push ecx
call fcn.004079dd
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x8c]
cmp eax, 5
jl case.0x44558c.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x44558c.6
jmp dword [eax*4 + 0x445cbb]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4455a9
push ecx
call fcn.004079dd
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x4455c2.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x4455c2.6
jmp dword [eax*4 + 0x445ce7]
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x4455c2.6
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esp + 0x28]
jmp 0x445241
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x4455c2.6
lea ecx, [esi + 8]
jmp 0x44523b
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4455c2.6
push ecx
call fcn.00408cd4
jmp case.0x4455c2.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.00420e2c
add esp, 4
push dword [esp + 0x28]
jmp 0x445241
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4455c2.6
push ecx
call fcn.00456e7a
jmp case.0x4455c2.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4455c2.6
push ecx
call fcn.00456e8f
jmp case.0x4455c2.6
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x4455c2.6
jmp 0x445239
test esi, esi
je case.0x44558c.6
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x4456bf
test esi, esi
je case.0x44558c.6
lea ecx, [esi + 8]
jmp 0x4456ba
test esi, esi
je case.0x44558c.6
push ecx
mov ecx, esi
call fcn.00408cd4
jmp case.0x44558c.6
push dword [esi + 4]
call fcn.00420e2c
add esp, 4
jmp 0x4456bf
test esi, esi
je case.0x44558c.6
push ecx
mov ecx, esi
call fcn.00456e7a
jmp case.0x44558c.6
test esi, esi
je case.0x44558c.6
push ecx
mov ecx, esi
call fcn.00456e8f
jmp case.0x44558c.6
test esi, esi
je case.0x44558c.6
mov ecx, esi
call fcn.00405904
push esi
call fcn.00420e2c
add esp, 4
lea ecx, [esp + 0xec]
mov dword [esp + 0x8c], 1
mov dword [esp + 0x80], 0
call fcn.0045617e
lea ecx, [esp + 0xb8]
call fcn.0045617e
mov byte [edi + 0x484], 0
jmp case.default.0x4459e6
cmp byte [edi + 0x459], 1
je 0x410be7
lea ecx, [esp + 0x98]
call fcn.00407667
lea eax, [esp + 0x94]
mov ecx, 0x4c5890
push eax
call fcn.00462408
test al, al
je 0x44580e
cmp dword [esp + 0x9c], 0
je 0x44571b
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00409e5d
mov esi, eax
test esi, esi
je 0x44571b
lea ecx, [esp + 0xd8]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 1
call fcn.004098c0
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x10c]
push str._TRAY_ID
mov dword [esp + 0xe8], 1
mov dword [esp + 0xdc], eax
call fcn.00407de1
push 1
lea eax, [esp + 0xdc]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x114]
push eax
call fcn.004089b3
lea ecx, [esp + 0x10c]
call fcn.00405904
mov byte [edi + 0x459], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0040b73c
lea ecx, [esp + 0xd8]
mov byte [edi + 0x459], 0
call fcn.004098c0
lea ecx, [esp + 0x98]
call fcn.00405904
jmp case.default.0x4459e6
lea ecx, [esp + 0x98]
call fcn.00405904
jmp 0x410be7
push 0xa
push dword [edi + 0x444]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov dword [esp + 0x48], eax
cmp eax, 0x102
je case.default.0x4459e6
lea eax, [esp + 0x48]
push eax
push dword [edi + 0x444]
call dword [sym.imp.KERNEL32.DLL_GetExitCodeProcess]
push dword [edi + 0x444]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
jmp 0x44587c
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [edi + 0x448], 0
mov dword [esp + 8], 0
push ecx
lea eax, [esp + 0xc]
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041fcd3
jmp 0x410f38
lea ecx, [edi + 0x168]
call fcn.0047bfe2
mov ecx, eax
call fcn.00455fcd
test al, al
jne 0x4458cc
mov eax, dword [esp + 8]
mov ecx, edi
movsx eax, word [eax + 0xa]
push eax
push 0xa7
call fcn.00469e4a
lea ecx, [esp + 0x50]
call fcn.00409c90
jmp case.default.0x4459e6
lea ecx, [edi + 0x168]
call fcn.0047bfe2
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push esi
call fcn.0047b53c
jmp 0x410da6
push 0xffffffffffffffff
lea eax, [esp + 0x54]
mov ecx, edi
push eax
lea eax, [esp + 0x28]
push eax
push esi
call fcn.00409ea0
jmp 0x410da6
movsx eax, word [eax + 0xa]
mov ecx, edi
push eax
push 0x72
call fcn.00469e4a
lea ecx, [esp + 0x50]
call fcn.00409c90
jmp case.default.0x4459e6
push dword [esi]
call fcn.00420e2c
add esp, 4
push dword [esi + 0xc]
call fcn.00420e2c
add esp, 4
jmp 0x410df4
test edx, edx
je case.0x410f95.6
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esp + 0x50]
jmp 0x4459be
test edx, edx
je case.0x410f95.6
lea ecx, [edx + 8]
jmp 0x4459b5
test edx, edx
je case.0x410f95.6
push ecx
mov ecx, edx
call fcn.00408cd4
jmp case.0x410f95.6
push dword [edx + 4]
call fcn.00420e2c
add esp, 4
push dword [esp + 0x50]
jmp 0x4459be
test edx, edx
je case.0x410f95.6
push ecx
mov ecx, edx
call fcn.00456e7a
jmp case.0x410f95.6
test edx, edx
je case.0x410f95.6
push ecx
mov ecx, edx
call fcn.00456e8f
jmp case.0x410f95.6
test edx, edx
je case.0x410f95.6
mov ecx, edx
call fcn.00405904
push dword [esp + 0x14]
call fcn.00420e2c
add esp, 4
jmp case.0x410f95.6
mov dword [edi + 0xf8], 1
jmp case.default.0x4459e6
sub eax, 3
cmp eax, 3
ja case.default.0x4459e6
jmp dword [eax*4 + 0x445d13]
mov ecx, edi
call fcn.00485f25
jmp 0x445a1f
mov ecx, edi
call fcn.00485f25
jmp 0x445a08
push 1
mov ecx, edi
call fcn.0040b7dd
mov esi, eax
test esi, esi
js 0x445a25
jg case.default.0x4459e6
jmp 0x445a5e
push 1
mov ecx, edi
call fcn.0040b7dd
mov esi, eax
test esi, esi
jns 0x445a54
mov eax, esi
neg eax
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0045652d
push ecx
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041fcd3
test esi, esi
je case.default.0x4459e6
test esi, esi
jle 0x445ad7
mov eax, dword [edi + 0xf8]
cmp eax, 5
je 0x445a6e
cmp eax, 3
jne 0x445ad7
mov eax, dword [edi + 0x1f0]
lea ecx, [esp + 0xc8]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 1
mov esi, dword [eax]
call fcn.004098c0
push 0
lea eax, [esp + 0xcc]
mov dword [esp + 0xd8], 7
push eax
mov eax, dword [edi]
mov dword [esp + 0xd0], esi
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.004564da
lea ecx, [esp + 0xc8]
call fcn.004098c0
mov ecx, dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call fcn.00465244
jmp case.default.0x4459e6
push 0xa
call dword [sym.imp.KERNEL32.DLL_Sleep]
cmp dword [edi + 0x43c], 0
je 0x445b35
mov ecx, dword [edi + 0x440]
call fcn.0042049f
test edx, edx
jl 0x445b35
jg 0x445b22
cmp eax, dword [edi + 0x43c]
jb 0x445b35
mov eax, dword [edi + 0x448]
test eax, eax
je 0x445874
jmp 0x445863
mov eax, dword [edi + 0xf8]
xor esi, esi
mov byte [esp + 0x1f], 0
mov dword [esp + 8], esi
cmp eax, 8
jne 0x445b73
lea eax, [esp + 0x1f]
push eax
lea ecx, [edi + 0x42c]
lea edx, [esp + 0xc]
call fcn.00463c55
add esp, 4
cmp byte [esp + 0x1f], 1
jne case.default.0x4459e6
mov esi, dword [esp + 8]
jmp 0x445b7c
cmp eax, 9
jne case.default.0x4459e6
mov ecx, dword [edi + 0x448]
mov eax, 0xcccccccc
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x445bd5
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_GetExitCodeProcess]
cmp dword [esp + 0x40], 0x103
jne 0x445bbb
push 0
push dword [edi + 0x448]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne case.default.0x4459e6
push dword [edi + 0x448]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [esp + 0x40]
mov dword [edi + 0x448], 0
cmp dword [edi + 0xf8], 8
jne 0x445c08
mov dword [esp + 8], esi
fild dword [esp + 8]
test esi, esi
jns 0x445bf0
fadd qword [0x4b9e48]
push ecx
lea eax, [esp + 0xc]
push eax
mov eax, dword [edi]
fstp qword [esp + 0x10]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0047c92d
jmp 0x445c17
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041fd21
push dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp case.default.0x4459e6
push ecx
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041fcd3
jmp 0x410ce4
lea eax, [esp + 0x14c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x158]
push eax
call esi
test eax, eax
jg 0x445c58
jmp 0x410d01