Function at 0x830b30
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 0x8650ed
inc eax
mov dword [edi + 0xec], eax
cmp eax, 1
je 0x831023
cmp byte [edi + 0xfc], 0
mov byte [edi + 0x144], 0
jne 0x830e44
mov esi, dword [sym.imp.user32.dll_PeekMessageW]
cmp byte [edi + 0x144], 0
mov edx, 2
jne 0x830e44
cmp byte [0x8e6281], 0
jne 0x86513a
cmp byte [0x8e67e8], 0
jne 0x86514c
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
jne 0x830f70
cmp byte [0x8e6282], 1
je 0x8651c1
cmp dword [edi + 0xf8], 1
je 0x866063
mov edx, 2
cmp dword [0x8e74a8], 0
jne 0x8651de
cmp byte [0x8e6287], 1
je 0x86529e
cmp dword [edi + 0x454], 0
je 0x830c64
cmp byte [0x8e741c], 0
jne 0x830c64
mov esi, dword [edi + 0x44c]
lea eax, [edi + 0x44c]
mov byte [0x8e741c], 1
mov dword [esp + 0x14], 0
mov dword [esp + 8], eax
nop
test esi, esi
jne 0x830e6b
mov edi, dword [esp + 8]
lea esp, [esp]
mov eax, dword [edi]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x830eb4
mov edi, dword [esp + 0x44]
mov byte [0x8e741c], al
cmp dword [esp + 0x14], eax
jg case.default.0x865e10
lea edx, [eax + 2]
cmp byte [0x8e67bc], 0
je 0x830d2d
cmp byte [edi + 0x458], 1
je 0x830d2d
cmp byte [0x8e67e8], 1
je 0x830d2d
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.00840ff6
add esp, 4
mov dword [esp + 0x98], eax
xor ecx, ecx
mov word [eax], cx
push 4
call fcn.00840ff6
add esp, 4
test eax, eax
je 0x8310fc
mov dword [eax], 1
mov dword [esp + 0xa4], eax
jmp 0x830cf0
cmp dword [0x8e67dc], 0
jne 0x8652da
cmp byte [0x8e67bc], 0
je 0x865484
mov esi, dword [esp + 0xa4]
dec dword [esi]
jne 0x830d2d
push dword [esp + 0x98]
call fcn.0084106c
add esp, 4
push esi
call fcn.0084106c
add esp, 4
cmp dword [edi + 0x184], 0
jne 0x8654ad
cmp byte [0x8e6930], 0
jne 0x865b2c
mov eax, dword [edi + 0xf8]
cmp eax, 7
je 0x865c49
cmp eax, 2
je 0x830fdd
cmp eax, 8
je 0x865f22
cmp eax, 9
je 0x865f22
cmp eax, 3
je 0x830fdd
cmp eax, 4
je 0x830fdd
cmp eax, 5
je 0x830fdd
cmp eax, 6
je 0x830fdd
mov esi, dword [ebp + 8]
inc dword [ebp + 8]
mov dword [edi + 0xf4], esi
cmp esi, dword [0x8e72a0]
jg 0x865df5
test esi, esi
jle 0x865df5
shl esi, 4
add esi, dword [0x8e72dc]
je 0x865df5
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 0x830ec8
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0082e580
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x830f43
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
cmp ecx, 5
jge 0x8310e9
mov dword [esp + 0x5c], 1
mov dword [esp + 0x50], 0
mov esi, dword [sym.imp.user32.dll_PeekMessageW]
cmp byte [edi + 0xfc], 0
je 0x830b7f
mov eax, dword [edi + 0xec]
mov byte [edi + 0x144], 0
cmp eax, 1
je 0x83103d
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 0x830eac
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 0x8652b8
cmp ecx, 0x7fffffff
ja 0x830e97
cdq
mov edi, dword [esi]
test edx, edx
jl 0x830eac
jg 0x8310ae
cmp eax, dword [edi + 0x18]
jae 0x8310ae
mov esi, dword [esi + 4]
jmp 0x830c30
mov ecx, dword [eax]
cmp byte [ecx + 0x11], 0
jne 0x8652c9
mov eax, dword [eax + 4]
jmp 0x830c42
cmp eax, 0x33
jne 0x830eda
push esi
mov ecx, edi
call fcn.0082e800
jmp 0x830e00
dec eax
cmp eax, 0x7e
ja case.0x830eeb.2
movzx eax, byte [eax + 0x831124]
jmp dword [eax*4 + 0x831110]
lea eax, [esp + 0x50]
mov ecx, edi
push eax
lea eax, [esp + 0x24]
push eax
push esi
push 0
call fcn.0082f5c0
test eax, eax
js 0x830e00
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
je 0x830e00
jmp 0x865d2d
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.0082fe40
jmp 0x830f06
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x865d49
push esi
call fcn.0084106c
add esp, 4
mov dword [esp + 0x58], 0
jmp 0x830e0c
cmp dword [esp + 0x98], 0x12
je 0x8651ab
mov ecx, dword [0x8e67d8]
cmp ecx, 0xffffffff
jne 0x86515e
lea eax, [esp + 0x94]
mov ecx, 0x8e67b0
push eax
call fcn.008231ce
test eax, eax
je 0x830fbf
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
je 0x830bc5
jmp 0x830f70
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 0x830fa3
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
cmp dword [edi + 0x2f0], 0
je 0x83100f
mov ecx, dword [edi + 0x2f8]
call fcn.00840719
test edx, edx
jl 0x83100f
jg 0x83108f
cmp eax, dword [edi + 0x2f0]
jae 0x83108f
mov eax, dword [edi + 0xf8]
cmp eax, 3
jl case.default.0x865e10
jmp 0x865e04
mov eax, dword [edi + 0x11c]
mov dword [esp + 0x40], eax
lea ecx, [ecx]
test eax, eax
je 0x830b65
jmp 0x865108
mov ecx, edi
call fcn.008311d0
cmp byte [edi + 0xfc], 1
je 0x830e61
mov ecx, edi
call fcn.008311f3
push 0
call dword [sym.imp.user32.dll_LockWindowUpdate]
push dword [0x8e62ac]
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 0x830e61
jmp 0x866082
cmp dword [edi + 0xf8], 2
jne 0x831103
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
jmp case.default.0x865e10
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.00829fbd
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.0082b89c
mov eax, dword [esi]
mov byte [eax + 0x10], 0
jmp 0x830eac
add ecx, 0xfffffffb
cmp ecx, 0xa
ja case.0x8310f5.6
jmp dword [ecx*4 + 0x8311a4]
xor eax, eax
jmp 0x830cde
mov dword [esp + 8], 0
jmp 0x865ca6
push 0xffffffffffffffff
push 0x9a
mov byte [0x8e6280], 0
call fcn.0088a0b5
or eax, 0xffffffff
jmp 0x830e63
push dword [eax]
mov ecx, edi
call fcn.00829fbd
test eax, eax
je 0x865123
mov eax, dword [eax + 0x10]
mov ecx, edi
push 1
inc eax
push eax
call fcn.008768bf
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
call fcn.00876cea
mov eax, dword [esp + 0x40]
jmp 0x831030
cmp byte [edi + 0x145], 0
je 0x830be4
jmp 0x830b9e
cmp dword [edi + 0xf8], 0
je 0x830be4
jmp 0x830bab
cmp ecx, dword [0x8e6814]
jge 0x86519c
mov eax, dword [0x8e6810]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
test eax, eax
je 0x86519c
cmp dword [eax + 0x18], 0
je 0x86519c
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 0x830fa3
jmp 0x830f8d
mov dword [0x8e67d8], 0xffffffff
jmp 0x830f8d
mov byte [edi + 0xfc], 1
mov dword [edi + 0xf8], 1
jmp 0x830bc5
mov byte [0x8e6287], 0
mov byte [0x8e6282], 0
mov dword [edi + 0xf8], 1
jmp 0x830bd2
mov eax, dword [0x8e74ac]
push eax
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0xc], ecx
call fcn.0084106c
dec dword [0x8e74a8]
add esp, 4
mov dword [0x8e74ac], esi
neg esi
sbb esi, esi
xor ecx, ecx
and dword [0x8e74b0], esi
mov edx, dword [edi + 0x1c8]
mov dword [esp + 0x18], ecx
test edx, edx
je 0x86523f
mov esi, dword [edi + 0x1c4]
mov edi, dword [esp + 8]
mov eax, dword [esi + ecx*4]
mov eax, dword [eax]
test eax, eax
je 0x865232
cmp dword [eax], edi
je 0x865237
inc ecx
cmp ecx, edx
jb 0x865225
mov edi, dword [esp + 0x44]
mov dword [esp + 0x18], ecx
cmp ecx, edx
je 0x86528e
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.00829fbd
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.008281a7
mov eax, dword [esi + 0x10]
mov ecx, edi
push 0
push 1
inc eax
push eax
call fcn.0082b89c
jmp case.default.0x865e10
mov esi, dword [sym.imp.user32.dll_PeekMessageW]
mov edx, 2
jmp 0x830bf1
cmp byte [0x8e6281], 0
jne 0x830bfe
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
jmp 0x830e37
cmp ecx, 0x7fffffff
jbe 0x830e97
jmp 0x830e96
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.0088a3f3
jmp 0x830c40
mov eax, dword [0x8e67e0]
lea ecx, [esp + 0x94]
mov esi, dword [eax]
push esi
call fcn.008a629f
mov ecx, 0x8e67dc
call fcn.0082467d
test esi, esi
je 0x865304
push ecx
mov ecx, esi
call fcn.00824665
cmp dword [esp + 0x9c], 0
mov dword [0x8e7420], 0
je 0x830cf0
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00829fbd
mov esi, eax
test esi, esi
je 0x830cf0
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 1
call fcn.00829a20
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x12c]
push str._GUI_CTRLID
mov dword [esp + 0x80], 1
mov dword [esp + 0x74], eax
call fcn.00827f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x8e7270
push eax
lea eax, [esp + 0x134]
push eax
call fcn.00828b13
lea ecx, [esp + 0x12c]
call fcn.00825a64
lea ecx, [esp + 0x70]
call fcn.00829a20
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.00827f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x8e7270
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00828b13
lea ecx, [esp + 0xfc]
call fcn.00825a64
lea ecx, [esp + 0x70]
call fcn.00829a20
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.00827f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x8e7270
push eax
lea eax, [esp + 0x124]
push eax
call fcn.00828b13
lea ecx, [esp + 0x11c]
call fcn.00825a64
mov byte [edi + 0x458], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0082b89c
lea ecx, [esp + 0x70]
mov byte [edi + 0x458], 0
call fcn.00829a20
lea ecx, [esp + 0x98]
call fcn.00825a64
jmp case.default.0x865e10
cmp dword [0x8e691c], 0
jne 0x8654a0
cmp dword [0x8e7420], 0x64
jge 0x8654a0
inc dword [0x8e7420]
push 0
jmp 0x8654a2
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
jmp 0x830d0a
cmp byte [edi + 0x484], 1
je 0x830d3a
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], 0x8afb84
mov dword [esp + 0x18], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
call fcn.00889c9f
lea ecx, [edi + 0x184]
call fcn.0087d9e3
mov esi, dword [esp + 0xf0]
lea ecx, [esp + 0x80]
mov dword [esp + 0x88], 0
push dword [esi]
call fcn.00829ac0
mov esi, dword [esi + 4]
mov ecx, esi
call fcn.00829997
push dword [esi + 8]
mov ecx, edi
call fcn.00829fbd
mov edx, eax
mov dword [esp + 0x20], edx
mov ecx, dword [edx + 0x10]
push ecx
call fcn.008271c8
mov dword [edi + 0xf4], ecx
mov esi, 3
cmp dword [edx + 0x14], 0
mov dword [esp + 0x3c], eax
jle 0x8656c2
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 0x8655cf
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 4]
mov eax, dword [edx + esi*4 + 4]
cmp word [eax + 8], 0x33
je 0x8655ac
mov ecx, eax
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x865645
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x8655bf
cmp eax, 0x1e
jne 0x865645
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0
je 0x86558e
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0x41
jne 0x8655ff
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 0x8655f2
inc ecx
jmp 0x865642
cmp ax, 0x48
jne 0x865638
dec ecx
jns 0x865642
mov edx, dword [esp + 0x24]
push dword [edx]
lea ecx, [esp + 0xbc]
call fcn.00876665
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 0x8656b3
mov eax, dword [esp + 0x3c]
jmp 0x865576
cmp ax, 0x40
jne 0x865642
test ecx, ecx
je 0x8655fb
inc esi
jmp 0x8655e2
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.0088a0b5
jmp 0x865683
mov ecx, esi
call fcn.00825a64
push esi
call fcn.0084106c
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x80]
call fcn.00829df0
lea ecx, [esp + 0xec]
call fcn.008766f4
lea ecx, [esp + 0xb8]
call fcn.008766f4
mov byte [edi + 0x484], 0
jmp 0x830d3a
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
push dword [edx + 0x10]
call fcn.00828561
mov eax, dword [esp + 0x20]
mov esi, 3
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], 1
cmp dword [eax + 0x14], 1
jl 0x86591a
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 0x86572a
mov eax, dword [ecx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x865717
cmp eax, 0x1e
jne 0x865718
mov edx, 0x100
inc esi
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], 0
je 0x865703
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 0x865756
inc ecx
jmp 0x86582e
cmp ax, 0x48
jne 0x865820
dec ecx
jns 0x86582e
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 0x8658d7
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.0082a000
test eax, eax
js 0x8659bd
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.00828620
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x865800
push ecx
call fcn.00827b3d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x865819.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x865819.6
jmp dword [eax*4 + 0x8660b9]
cmp ax, 0x40
jne 0x86582e
test ecx, ecx
je 0x865767
inc esi
add edx, 4
jmp 0x865743
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x865819.6
push eax
call dword [sym.imp.oleaut32.dll_VariantClear]
push dword [esp + 0x28]
jmp 0x8658bd
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x865819.6
lea ecx, [eax + 8]
jmp 0x8658b4
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x865819.6
push ecx
call fcn.00828e34
jmp case.0x865819.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.0084106c
add esp, 4
push dword [esp + 0x28]
jmp 0x8658bd
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x865819.6
push ecx
call fcn.008773f0
jmp case.0x865819.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x865819.6
push ecx
call fcn.00877405
jmp case.0x865819.6
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x865819.6
mov ecx, eax
call fcn.00825a64
push dword [esp + 8]
call fcn.0084106c
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
jmp 0x8658f4
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.00828620
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 0x8656e9
push 0x8d9a3c
lea ecx, [esp + 0x140]
call fcn.00827f41
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.00828620
lea ecx, [esp + 0x13c]
call fcn.00825a64
mov eax, dword [esp + 0x20]
mov ecx, edi
push 0
push 0
mov eax, dword [eax + 0x10]
inc eax
push eax
call fcn.0082b89c
mov ecx, 0x8e7280
call fcn.0082843f
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x86599a
push ecx
call fcn.00827b3d
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x8c]
cmp eax, 5
jl case.0x8659b6.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x8659b6.6
jmp dword [eax*4 + 0x8660e5]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x8659d3
push ecx
call fcn.00827b3d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x8659ec.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x8659ec.6
jmp dword [eax*4 + 0x866111]
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x8659ec.6
push eax
call dword [sym.imp.oleaut32.dll_VariantClear]
push dword [esp + 0x28]
jmp 0x86566b
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x8659ec.6
lea ecx, [esi + 8]
jmp 0x865665
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x8659ec.6
push ecx
call fcn.00828e34
jmp case.0x8659ec.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.0084106c
add esp, 4
push dword [esp + 0x28]
jmp 0x86566b
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x8659ec.6
push ecx
call fcn.008773f0
jmp case.0x8659ec.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x8659ec.6
push ecx
call fcn.00877405
jmp case.0x8659ec.6
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x8659ec.6
jmp 0x865663
test esi, esi
je case.0x8659b6.6
push esi
call dword [sym.imp.oleaut32.dll_VariantClear]
jmp 0x865ae9
test esi, esi
je case.0x8659b6.6
lea ecx, [esi + 8]
jmp 0x865ae4
test esi, esi
je case.0x8659b6.6
push ecx
mov ecx, esi
call fcn.00828e34
jmp case.0x8659b6.6
push dword [esi + 4]
call fcn.0084106c
add esp, 4
jmp 0x865ae9
test esi, esi
je case.0x8659b6.6
push ecx
mov ecx, esi
call fcn.008773f0
jmp case.0x8659b6.6
test esi, esi
je case.0x8659b6.6
push ecx
mov ecx, esi
call fcn.00877405
jmp case.0x8659b6.6
test esi, esi
je case.0x8659b6.6
mov ecx, esi
call fcn.00825a64
push esi
call fcn.0084106c
add esp, 4
lea ecx, [esp + 0xec]
mov dword [esp + 0x8c], 1
mov dword [esp + 0x80], 0
call fcn.008766f4
lea ecx, [esp + 0xb8]
call fcn.008766f4
mov byte [edi + 0x484], 0
jmp case.default.0x865e10
cmp byte [edi + 0x459], 1
je 0x830d47
lea ecx, [esp + 0x98]
call fcn.008277c7
lea eax, [esp + 0x94]
mov ecx, 0x8e6890
push eax
call fcn.008828f7
test al, al
je 0x865c38
cmp dword [esp + 0x9c], 0
je 0x865b45
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00829fbd
mov esi, eax
test esi, esi
je 0x865b45
lea ecx, [esp + 0xd8]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 1
call fcn.00829a20
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.00827f41
push 1
lea eax, [esp + 0xdc]
mov ecx, 0x8e7270
push eax
lea eax, [esp + 0x114]
push eax
call fcn.00828b13
lea ecx, [esp + 0x10c]
call fcn.00825a64
mov byte [edi + 0x459], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0082b89c
lea ecx, [esp + 0xd8]
mov byte [edi + 0x459], 0
call fcn.00829a20
lea ecx, [esp + 0x98]
call fcn.00825a64
jmp case.default.0x865e10
lea ecx, [esp + 0x98]
call fcn.00825a64
jmp 0x830d47
push 0xa
push dword [edi + 0x444]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
mov dword [esp + 0x48], eax
cmp eax, 0x102
je case.default.0x865e10
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 0x865ca6
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.0083ff13
jmp 0x831098
lea ecx, [edi + 0x168]
call fcn.0089c2f7
mov ecx, eax
call fcn.00876543
test al, al
jne 0x865cf6
mov eax, dword [esp + 8]
mov ecx, edi
movsx eax, word [eax + 0xa]
push eax
push 0xa7
call fcn.0088a0b5
lea ecx, [esp + 0x50]
call fcn.00829df0
jmp case.default.0x865e10
lea ecx, [edi + 0x168]
call fcn.0089c2f7
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push esi
call fcn.0089b851
jmp 0x830f06
push 0xffffffffffffffff
lea eax, [esp + 0x54]
mov ecx, edi
push eax
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0082a000
jmp 0x830f06
movsx eax, word [eax + 0xa]
mov ecx, edi
push eax
push 0x72
call fcn.0088a0b5
lea ecx, [esp + 0x50]
call fcn.00829df0
jmp case.default.0x865e10
push dword [esi]
call fcn.0084106c
add esp, 4
push dword [esi + 0xc]
call fcn.0084106c
add esp, 4
jmp 0x830f54
test edx, edx
je case.0x8310f5.6
push edx
call dword [sym.imp.oleaut32.dll_VariantClear]
push dword [esp + 0x50]
jmp 0x865de8
test edx, edx
je case.0x8310f5.6
lea ecx, [edx + 8]
jmp 0x865ddf
test edx, edx
je case.0x8310f5.6
push ecx
mov ecx, edx
call fcn.00828e34
jmp case.0x8310f5.6
push dword [edx + 4]
call fcn.0084106c
add esp, 4
push dword [esp + 0x50]
jmp 0x865de8
test edx, edx
je case.0x8310f5.6
push ecx
mov ecx, edx
call fcn.008773f0
jmp case.0x8310f5.6
test edx, edx
je case.0x8310f5.6
push ecx
mov ecx, edx
call fcn.00877405
jmp case.0x8310f5.6
test edx, edx
je case.0x8310f5.6
mov ecx, edx
call fcn.00825a64
push dword [esp + 0x14]
call fcn.0084106c
add esp, 4
jmp case.0x8310f5.6
mov dword [edi + 0xf8], 1
jmp case.default.0x865e10
sub eax, 3
cmp eax, 3
ja case.default.0x865e10
jmp dword [eax*4 + 0x86613d]
mov ecx, edi
call fcn.008a61ac
jmp 0x865e49
mov ecx, edi
call fcn.008a61ac
jmp 0x865e32
push 1
mov ecx, edi
call fcn.0082b93d
mov esi, eax
test esi, esi
js 0x865e4f
jg case.default.0x865e10
jmp 0x865e88
push 1
mov ecx, edi
call fcn.0082b93d
mov esi, eax
test esi, esi
jns 0x865e7e
mov eax, esi
neg eax
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.00876aa3
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.0083ff13
test esi, esi
je case.default.0x865e10
test esi, esi
jle 0x865f01
mov eax, dword [edi + 0xf8]
cmp eax, 5
je 0x865e98
cmp eax, 3
jne 0x865f01
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.00829a20
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.00876a50
lea ecx, [esp + 0xc8]
call fcn.00829a20
mov ecx, dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call fcn.008854e6
jmp case.default.0x865e10
push 0xa
call dword [sym.imp.kernel32.dll_Sleep]
cmp dword [edi + 0x43c], 0
je 0x865f5f
mov ecx, dword [edi + 0x440]
call fcn.00840719
test edx, edx
jl 0x865f5f
jg 0x865f4c
cmp eax, dword [edi + 0x43c]
jb 0x865f5f
mov eax, dword [edi + 0x448]
test eax, eax
je 0x865c9e
jmp 0x865c8d
mov eax, dword [edi + 0xf8]
xor esi, esi
mov byte [esp + 0x1f], 0
mov dword [esp + 8], esi
cmp eax, 8
jne 0x865f9d
lea eax, [esp + 0x1f]
push eax
lea ecx, [edi + 0x42c]
lea edx, [esp + 0xc]
call fcn.00883e91
add esp, 4
cmp byte [esp + 0x1f], 1
jne case.default.0x865e10
mov esi, dword [esp + 8]
jmp 0x865fa6
cmp eax, 9
jne case.default.0x865e10
mov ecx, dword [edi + 0x448]
mov eax, 0xcccccccc
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x865fff
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.kernel32.dll_GetExitCodeProcess]
cmp dword [esp + 0x40], 0x103
jne 0x865fe5
push 0
push dword [edi + 0x448]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
jne case.default.0x865e10
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 0x866032
mov dword [esp + 8], esi
fild dword [esp + 8]
test esi, esi
jns 0x86601a
fadd qword [0x8dbac8]
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.0089cc41
jmp 0x866041
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0083ff61
push dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call dword [sym.imp.kernel32.dll_Sleep]
jmp case.default.0x865e10
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.0083ff13
jmp 0x830e44
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 0x866082
jmp 0x830e61