Function at 0x410b30
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 0x44501c
inc eax
mov dword [edi + 0xec], eax
cmp eax, 1
je 0x411023
cmp byte [edi + 0xfc], 0
mov byte [edi + 0x144], 0
jne 0x410e44
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
cmp byte [edi + 0x144], 0
mov edx, 2
jne 0x410e44
cmp byte [0x4c5281], 0
jne 0x445069
cmp byte [0x4c57e8], 0
jne 0x44507b
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
jne 0x410f70
cmp byte [0x4c5282], 1
je 0x4450f0
cmp dword [edi + 0xf8], 1
je 0x445f92
mov edx, 2
cmp dword [0x4c64a8], 0
jne 0x44510d
cmp byte [0x4c5287], 1
je 0x4451cd
cmp dword [edi + 0x454], 0
je 0x410c64
cmp byte [0x4c641c], 0
jne 0x410c64
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 0x410e6b
mov edi, dword [esp + 8]
lea esp, [esp]
mov eax, dword [edi]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x410eb4
mov edi, dword [esp + 0x44]
mov byte [0x4c641c], al
cmp dword [esp + 0x14], eax
jg case.default.0x445d3f
lea edx, [eax + 2]
cmp byte [0x4c57bc], 0
je 0x410d2d
cmp byte [edi + 0x458], 1
je 0x410d2d
cmp byte [0x4c57e8], 1
je 0x410d2d
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.00420f36
add esp, 4
mov dword [esp + 0x98], eax
xor ecx, ecx
mov word [eax], cx
push 4
call fcn.00420f36
add esp, 4
test eax, eax
je 0x4110fc
mov dword [eax], 1
mov dword [esp + 0xa4], eax
jmp 0x410cf0
cmp dword [0x4c57dc], 0
jne 0x445209
cmp byte [0x4c57bc], 0
je 0x4453b3
mov esi, dword [esp + 0xa4]
dec dword [esi]
jne 0x410d2d
push dword [esp + 0x98]
call fcn.00420fac
add esp, 4
push esi
call fcn.00420fac
add esp, 4
cmp dword [edi + 0x184], 0
jne 0x4453dc
cmp byte [0x4c5930], 0
jne 0x445a5b
mov eax, dword [edi + 0xf8]
cmp eax, 7
je 0x445b78
cmp eax, 2
je 0x410fbf
cmp eax, 8
je 0x445e51
cmp eax, 9
je 0x445e51
cmp eax, 3
je 0x410fbf
cmp eax, 4
je 0x410fbf
cmp eax, 5
je 0x410fbf
cmp eax, 6
je 0x410fbf
mov esi, dword [ebp + 8]
inc dword [ebp + 8]
mov dword [edi + 0xf4], esi
cmp esi, dword [0x4c62a0]
jg 0x445d24
test esi, esi
jle 0x445d24
shl esi, 4
add esi, dword [0x4c62dc]
je 0x445d24
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 0x410ec8
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0040e580
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x410f43
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
cmp ecx, 5
jge 0x4110e9
mov dword [esp + 0x5c], 1
mov dword [esp + 0x50], 0
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
cmp byte [edi + 0xfc], 0
je 0x410b7f
mov eax, dword [edi + 0xec]
mov byte [edi + 0x144], 0
cmp eax, 1
je 0x41103d
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 0x410eac
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 0x4451e7
cmp ecx, 0x7fffffff
ja 0x410e97
cdq
mov edi, dword [esi]
test edx, edx
jl 0x410eac
jg 0x4110ae
cmp eax, dword [edi + 0x18]
jae 0x4110ae
mov esi, dword [esi + 4]
jmp 0x410c30
mov ecx, dword [eax]
cmp byte [ecx + 0x11], 0
jne 0x4451f8
mov eax, dword [eax + 4]
jmp 0x410c42
cmp eax, 0x33
jne 0x410eda
push esi
mov ecx, edi
call fcn.0040e800
jmp 0x410e00
dec eax
cmp eax, 0x7e
ja case.0x410eeb.2
movzx eax, byte [eax + 0x411124]
jmp dword [eax*4 + 0x411110]
lea eax, [esp + 0x50]
mov ecx, edi
push eax
lea eax, [esp + 0x24]
push eax
push esi
push 0
call fcn.0040f5c0
test eax, eax
js 0x410e00
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
je 0x410e00
jmp 0x445c5c
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.0040fe40
jmp 0x410f06
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x445c78
push esi
call fcn.00420fac
add esp, 4
mov dword [esp + 0x58], 0
jmp 0x410e0c
cmp dword [esp + 0x98], 0x12
je 0x4450da
mov ecx, dword [0x4c57d8]
cmp ecx, 0xffffffff
jne 0x44508d
lea eax, [esp + 0x94]
mov ecx, 0x4c57b0
push eax
call fcn.004031ce
test eax, eax
je 0x411005
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
je 0x410bc5
jmp 0x410f70
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [edi + 0x2f0], 0
je 0x410ff1
mov ecx, dword [edi + 0x2f8]
call fcn.0042034a
test edx, edx
jl 0x410ff1
jg 0x41108f
cmp eax, dword [edi + 0x2f0]
jae 0x41108f
mov eax, dword [edi + 0xf8]
cmp eax, 3
jl case.default.0x445d3f
jmp 0x445d33
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 0x410fa3
mov eax, dword [edi + 0x11c]
mov dword [esp + 0x40], eax
lea ecx, [ecx]
test eax, eax
je 0x410b65
jmp 0x445037
mov ecx, edi
call fcn.004111d0
cmp byte [edi + 0xfc], 1
je 0x410e61
mov ecx, edi
call fcn.004111f3
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 0x410e61
jmp 0x445fb1
cmp dword [edi + 0xf8], 2
jne 0x411103
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
jmp case.default.0x445d3f
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.00409fbd
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.0040b89c
mov eax, dword [esi]
mov byte [eax + 0x10], 0
jmp 0x410eac
add ecx, 0xfffffffb
cmp ecx, 0xa
ja case.0x4110f5.6
jmp dword [ecx*4 + 0x4111a4]
xor eax, eax
jmp 0x410cde
mov dword [esp + 8], 0
jmp 0x445bd5
push 0xffffffffffffffff
push 0x9a
mov byte [0x4c5280], 0
call fcn.00469ed4
or eax, 0xffffffff
jmp 0x410e63
push dword [eax]
mov ecx, edi
call fcn.00409fbd
test eax, eax
je 0x445052
mov eax, dword [eax + 0x10]
mov ecx, edi
push 1
inc eax
push eax
call fcn.0045669f
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
call fcn.00456aca
mov eax, dword [esp + 0x40]
jmp 0x411030
cmp byte [edi + 0x145], 0
je 0x410be4
jmp 0x410b9e
cmp dword [edi + 0xf8], 0
je 0x410be4
jmp 0x410bab
cmp ecx, dword [0x4c5814]
jge 0x4450cb
mov eax, dword [0x4c5810]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
test eax, eax
je 0x4450cb
cmp dword [eax + 0x18], 0
je 0x4450cb
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 0x410fa3
jmp 0x410f8d
mov dword [0x4c57d8], 0xffffffff
jmp 0x410f8d
mov byte [edi + 0xfc], 1
mov dword [edi + 0xf8], 1
jmp 0x410bc5
mov byte [0x4c5287], 0
mov byte [0x4c5282], 0
mov dword [edi + 0xf8], 1
jmp 0x410bd2
mov eax, dword [0x4c64ac]
push eax
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0xc], ecx
call fcn.00420fac
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 0x44516e
mov esi, dword [edi + 0x1c4]
mov edi, dword [esp + 8]
mov eax, dword [esi + ecx*4]
mov eax, dword [eax]
test eax, eax
je 0x445161
cmp dword [eax], edi
je 0x445166
inc ecx
cmp ecx, edx
jb 0x445154
mov edi, dword [esp + 0x44]
mov dword [esp + 0x18], ecx
cmp ecx, edx
je 0x4451bd
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.00409fbd
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.004081a7
mov eax, dword [esi + 0x10]
mov ecx, edi
push 0
push 1
inc eax
push eax
call fcn.0040b89c
jmp case.default.0x445d3f
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edx, 2
jmp 0x410bf1
cmp byte [0x4c5281], 0
jne 0x410bfe
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x410e37
cmp ecx, 0x7fffffff
jbe 0x410e97
jmp 0x410e96
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.0046a212
jmp 0x410c40
mov eax, dword [0x4c57e0]
lea ecx, [esp + 0x94]
mov esi, dword [eax]
push esi
call fcn.00486081
mov ecx, 0x4c57dc
call fcn.0040467d
test esi, esi
je 0x445233
push ecx
mov ecx, esi
call fcn.00404665
cmp dword [esp + 0x9c], 0
mov dword [0x4c6420], 0
je 0x410cf0
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00409fbd
mov esi, eax
test esi, esi
je 0x410cf0
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 1
call fcn.00409a20
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x12c]
push 0x4a2edc
mov dword [esp + 0x80], 1
mov dword [esp + 0x74], eax
call fcn.00407f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x134]
push eax
call fcn.00408b13
lea ecx, [esp + 0x12c]
call fcn.00405a64
lea ecx, [esp + 0x70]
call fcn.00409a20
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.00407f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00408b13
lea ecx, [esp + 0xfc]
call fcn.00405a64
lea ecx, [esp + 0x70]
call fcn.00409a20
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.00407f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x124]
push eax
call fcn.00408b13
lea ecx, [esp + 0x11c]
call fcn.00405a64
mov byte [edi + 0x458], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0040b89c
lea ecx, [esp + 0x70]
mov byte [edi + 0x458], 0
call fcn.00409a20
lea ecx, [esp + 0x98]
call fcn.00405a64
jmp case.default.0x445d3f
cmp dword [0x4c591c], 0
jne 0x4453cf
cmp dword [0x4c6420], 0x64
jge 0x4453cf
inc dword [0x4c6420]
push 0
jmp 0x4453d1
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x410d0a
cmp byte [edi + 0x484], 1
je 0x410d3a
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.00469abe
lea ecx, [edi + 0x184]
call fcn.0045d801
mov esi, dword [esp + 0xf0]
lea ecx, [esp + 0x80]
mov dword [esp + 0x88], 0
push dword [esi]
call fcn.00409ac0
mov esi, dword [esi + 4]
mov ecx, esi
call fcn.00409997
push dword [esi + 8]
mov ecx, edi
call fcn.00409fbd
mov edx, eax
mov dword [esp + 0x20], edx
mov ecx, dword [edx + 0x10]
push ecx
call fcn.004071c8
mov dword [edi + 0xf4], ecx
mov esi, 3
cmp dword [edx + 0x14], 0
mov dword [esp + 0x3c], eax
jle 0x4455f1
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 0x4454fe
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 4]
mov eax, dword [edx + esi*4 + 4]
cmp word [eax + 8], 0x33
je 0x4454db
mov ecx, eax
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x445574
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x4454ee
cmp eax, 0x1e
jne 0x445574
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0
je 0x4454bd
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0x41
jne 0x44552e
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 0x445521
inc ecx
jmp 0x445571
cmp ax, 0x48
jne 0x445567
dec ecx
jns 0x445571
mov edx, dword [esp + 0x24]
push dword [edx]
lea ecx, [esp + 0xbc]
call fcn.00456363
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 0x4455e2
mov eax, dword [esp + 0x3c]
jmp 0x4454a5
cmp ax, 0x40
jne 0x445571
test ecx, ecx
je 0x44552a
inc esi
jmp 0x445511
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.00469ed4
jmp 0x4455b2
mov ecx, esi
call fcn.00405a64
push esi
call fcn.00420fac
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x80]
call fcn.00409df0
lea ecx, [esp + 0xec]
call fcn.004563f2
lea ecx, [esp + 0xb8]
call fcn.004563f2
mov byte [edi + 0x484], 0
jmp 0x410d3a
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
push dword [edx + 0x10]
call fcn.00408561
mov eax, dword [esp + 0x20]
mov esi, 3
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], 1
cmp dword [eax + 0x14], 1
jl 0x445849
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 0x445659
mov eax, dword [ecx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x445646
cmp eax, 0x1e
jne 0x445647
mov edx, 0x100
inc esi
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], 0
je 0x445632
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 0x445685
inc ecx
jmp 0x44575d
cmp ax, 0x48
jne 0x44574f
dec ecx
jns 0x44575d
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 0x445806
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.0040a000
test eax, eax
js 0x4458ec
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.00408620
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x44572f
push ecx
call fcn.00407b3d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x445748.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x445748.6
jmp dword [eax*4 + 0x445fe8]
cmp ax, 0x40
jne 0x44575d
test ecx, ecx
je 0x445696
inc esi
add edx, 4
jmp 0x445672
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x445748.6
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esp + 0x28]
jmp 0x4457ec
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x445748.6
lea ecx, [eax + 8]
jmp 0x4457e3
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x445748.6
push ecx
call fcn.00408e34
jmp case.0x445748.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.00420fac
add esp, 4
push dword [esp + 0x28]
jmp 0x4457ec
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x445748.6
push ecx
call fcn.004571d0
jmp case.0x445748.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x445748.6
push ecx
call fcn.004571e5
jmp case.0x445748.6
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x445748.6
mov ecx, eax
call fcn.00405a64
push dword [esp + 8]
call fcn.00420fac
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
jmp 0x445823
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.00408620
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 0x445618
push 0x4b7dbc
lea ecx, [esp + 0x140]
call fcn.00407f41
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.00408620
lea ecx, [esp + 0x13c]
call fcn.00405a64
mov eax, dword [esp + 0x20]
mov ecx, edi
push 0
push 0
mov eax, dword [eax + 0x10]
inc eax
push eax
call fcn.0040b89c
mov ecx, 0x4c6280
call fcn.0040843f
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4458c9
push ecx
call fcn.00407b3d
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x8c]
cmp eax, 5
jl case.0x4458e5.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x4458e5.6
jmp dword [eax*4 + 0x446014]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x445902
push ecx
call fcn.00407b3d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x44591b.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x44591b.6
jmp dword [eax*4 + 0x446040]
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x44591b.6
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esp + 0x28]
jmp 0x44559a
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x44591b.6
lea ecx, [esi + 8]
jmp 0x445594
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x44591b.6
push ecx
call fcn.00408e34
jmp case.0x44591b.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.00420fac
add esp, 4
push dword [esp + 0x28]
jmp 0x44559a
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x44591b.6
push ecx
call fcn.004571d0
jmp case.0x44591b.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x44591b.6
push ecx
call fcn.004571e5
jmp case.0x44591b.6
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x44591b.6
jmp 0x445592
test esi, esi
je case.0x4458e5.6
push esi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x445a18
test esi, esi
je case.0x4458e5.6
lea ecx, [esi + 8]
jmp 0x445a13
test esi, esi
je case.0x4458e5.6
push ecx
mov ecx, esi
call fcn.00408e34
jmp case.0x4458e5.6
push dword [esi + 4]
call fcn.00420fac
add esp, 4
jmp 0x445a18
test esi, esi
je case.0x4458e5.6
push ecx
mov ecx, esi
call fcn.004571d0
jmp case.0x4458e5.6
test esi, esi
je case.0x4458e5.6
push ecx
mov ecx, esi
call fcn.004571e5
jmp case.0x4458e5.6
test esi, esi
je case.0x4458e5.6
mov ecx, esi
call fcn.00405a64
push esi
call fcn.00420fac
add esp, 4
lea ecx, [esp + 0xec]
mov dword [esp + 0x8c], 1
mov dword [esp + 0x80], 0
call fcn.004563f2
lea ecx, [esp + 0xb8]
call fcn.004563f2
mov byte [edi + 0x484], 0
jmp case.default.0x445d3f
cmp byte [edi + 0x459], 1
je 0x410d47
lea ecx, [esp + 0x98]
call fcn.004077c7
lea eax, [esp + 0x94]
mov ecx, 0x4c5890
push eax
call fcn.00462700
test al, al
je 0x445b67
cmp dword [esp + 0x9c], 0
je 0x445a74
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00409fbd
mov esi, eax
test esi, esi
je 0x445a74
lea ecx, [esp + 0xd8]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 1
call fcn.00409a20
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.00407f41
push 1
lea eax, [esp + 0xdc]
mov ecx, 0x4c6270
push eax
lea eax, [esp + 0x114]
push eax
call fcn.00408b13
lea ecx, [esp + 0x10c]
call fcn.00405a64
mov byte [edi + 0x459], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0040b89c
lea ecx, [esp + 0xd8]
mov byte [edi + 0x459], 0
call fcn.00409a20
lea ecx, [esp + 0x98]
call fcn.00405a64
jmp case.default.0x445d3f
lea ecx, [esp + 0x98]
call fcn.00405a64
jmp 0x410d47
push 0xa
push dword [edi + 0x444]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esp + 0x48], eax
cmp eax, 0x102
je case.default.0x445d3f
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 0x445bd5
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.0041fe53
jmp 0x411098
lea ecx, [edi + 0x168]
call fcn.0047c0f7
mov ecx, eax
call fcn.00456241
test al, al
jne 0x445c25
mov eax, dword [esp + 8]
mov ecx, edi
movsx eax, word [eax + 0xa]
push eax
push 0xa7
call fcn.00469ed4
lea ecx, [esp + 0x50]
call fcn.00409df0
jmp case.default.0x445d3f
lea ecx, [edi + 0x168]
call fcn.0047c0f7
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push esi
call fcn.0047b651
jmp 0x410f06
push 0xffffffffffffffff
lea eax, [esp + 0x54]
mov ecx, edi
push eax
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0040a000
jmp 0x410f06
movsx eax, word [eax + 0xa]
mov ecx, edi
push eax
push 0x72
call fcn.00469ed4
lea ecx, [esp + 0x50]
call fcn.00409df0
jmp case.default.0x445d3f
push dword [esi]
call fcn.00420fac
add esp, 4
push dword [esi + 0xc]
call fcn.00420fac
add esp, 4
jmp 0x410f54
test edx, edx
je case.0x4110f5.6
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esp + 0x50]
jmp 0x445d17
test edx, edx
je case.0x4110f5.6
lea ecx, [edx + 8]
jmp 0x445d0e
test edx, edx
je case.0x4110f5.6
push ecx
mov ecx, edx
call fcn.00408e34
jmp case.0x4110f5.6
push dword [edx + 4]
call fcn.00420fac
add esp, 4
push dword [esp + 0x50]
jmp 0x445d17
test edx, edx
je case.0x4110f5.6
push ecx
mov ecx, edx
call fcn.004571d0
jmp case.0x4110f5.6
test edx, edx
je case.0x4110f5.6
push ecx
mov ecx, edx
call fcn.004571e5
jmp case.0x4110f5.6
test edx, edx
je case.0x4110f5.6
mov ecx, edx
call fcn.00405a64
push dword [esp + 0x14]
call fcn.00420fac
add esp, 4
jmp case.0x4110f5.6
mov dword [edi + 0xf8], 1
jmp case.default.0x445d3f
sub eax, 3
cmp eax, 3
ja case.default.0x445d3f
jmp dword [eax*4 + 0x44606c]
mov ecx, edi
call fcn.00485f8e
jmp 0x445d78
mov ecx, edi
call fcn.00485f8e
jmp 0x445d61
push 1
mov ecx, edi
call fcn.0040b93d
mov esi, eax
test esi, esi
js 0x445d7e
jg case.default.0x445d3f
jmp 0x445db7
push 1
mov ecx, edi
call fcn.0040b93d
mov esi, eax
test esi, esi
jns 0x445dad
mov eax, esi
neg eax
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.00456883
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.0041fe53
test esi, esi
je case.default.0x445d3f
test esi, esi
jle 0x445e30
mov eax, dword [edi + 0xf8]
cmp eax, 5
je 0x445dc7
cmp eax, 3
jne 0x445e30
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.00409a20
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.00456830
lea ecx, [esp + 0xc8]
call fcn.00409a20
mov ecx, dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call fcn.004652eb
jmp case.default.0x445d3f
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [edi + 0x43c], 0
je 0x445e8e
mov ecx, dword [edi + 0x440]
call fcn.0042034a
test edx, edx
jl 0x445e8e
jg 0x445e7b
cmp eax, dword [edi + 0x43c]
jb 0x445e8e
mov eax, dword [edi + 0x448]
test eax, eax
je 0x445bcd
jmp 0x445bbc
mov eax, dword [edi + 0xf8]
xor esi, esi
mov byte [esp + 0x1f], 0
mov dword [esp + 8], esi
cmp eax, 8
jne 0x445ecc
lea eax, [esp + 0x1f]
push eax
lea ecx, [edi + 0x42c]
lea edx, [esp + 0xc]
call fcn.00463c99
add esp, 4
cmp byte [esp + 0x1f], 1
jne case.default.0x445d3f
mov esi, dword [esp + 8]
jmp 0x445ed5
cmp eax, 9
jne case.default.0x445d3f
mov ecx, dword [edi + 0x448]
mov eax, 0xcccccccc
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x445f2e
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [esp + 0x40], 0x103
jne 0x445f14
push 0
push dword [edi + 0x448]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne case.default.0x445d3f
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 0x445f61
mov dword [esp + 8], esi
fild dword [esp + 8]
test esi, esi
jns 0x445f49
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.0047ca41
jmp 0x445f70
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041fea1
push dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp case.default.0x445d3f
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.0041fe53
jmp 0x410e44
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 0x445fb1
jmp 0x410e61