Function at 0x1003a9d0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100406a3
mov eax, dword fs:[0]
push eax
sub esp, 0x14c
mov eax, dword [0x10042544]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0xf0], edi
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x144], edi
mov dword [ebp - 0xf4], 0
lea ebx, [edx + 0x7ff5f448]
cmp ebx, 0x2f2
mov dword [ebp - 0x12c], ebx
setbe al
mov byte [ebp - 0x124], al
test edx, edx
jns 0x1003aa65
mov ecx, dword [edi]
cmp dword [ecx + 0xc], 0
jl 0x1003aa65
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x1003aa65
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [edi]
mov dword [eax + 8], 0
mov eax, dword [edi]
cmp dword [eax + 4], 1
je 0x1003aad4
cmp dword [eax + 8], 0
jne 0x1003aab3
cmp ebx, 0x2f2
jbe 0x1003aab3
lea eax, [ebp - 0xf4]
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SetErrorInfo]
test eax, eax
js 0x1003aab3
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x1003aab3
mov eax, dword [edi]
mov dword [eax + 8], ecx
push dword [ebp - 0xf4]
push 0
call dword [sym.imp.OLEAUT32.dll_CreateErrorInfo]
mov ecx, dword [edi]
mov eax, dword [edi + 0x18]
mov dword [ecx + 0xc], eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1003ce72
mov esp, ebp
pop ebp
ret
cmp byte [eax + 0x12], 0
je 0x1003aae4
xor ecx, ecx
mov dword [ebp - 0x11c], ecx
jmp 0x1003ab3d
mov edi, dword [edi + 0x14]
mov eax, dword [edi]
mov esi, dword [eax + 0x5c]
mov ecx, esi
call dword [0x100431c0]
mov ecx, edi
call esi
mov ebx, eax
mov dword [ebp - 0x11c], ebx
test ebx, ebx
jne 0x1003ab13
mov ecx, dword [edi + 0x10]
cmp edi, ecx
je 0x1003ab11
mov edi, ecx
test edi, edi
jne 0x1003aae7
test ebx, ebx
mov ebx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x11c]
je 0x1003ab37
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x100431c0]
call esi
mov ecx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0xf0]
mov eax, dword [edi]
inc dword [eax + 4]
mov dword [ebp - 4], 0
test ecx, ecx
je 0x1003ab5d
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x100431c0]
call esi
mov ecx, dword [edi]
mov eax, 3
mov word [ebp - 0x158], ax
mov byte [ebp - 0x101], 0
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x150], eax
cmp dword [ecx + 0x1c], 0
je 0x1003aba5
xor eax, eax
mov dword [ebp - 0x138], 1
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x158]
mov dword [ebp - 0x140], eax
cmp ebx, 0x2f2
jbe 0x1003ac76
lea eax, [ebp - 0xf4]
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SetErrorInfo]
test eax, eax
js 0x1003b7e6
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jne 0x1003ad8e
mov eax, dword [edi]
cmp dword [eax + 8], ecx
jne 0x1003ac84
cmp dword [edi + 0x18], ecx
je 0x1003ac84
lea eax, [ebp - 0xf4]
push eax
push 0x10005380
push 1
push ecx
push 0x1000a154
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1003ac76
mov edi, dword [edi + 0x14]
mov eax, dword [edi]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax]
cmp dword [eax + 0x1c], 0
jne 0x1003ac46
call dword [0x100431c0]
mov ecx, edi
call esi
mov edi, dword [ebp - 0xf0]
push 0
push 0
push ecx
push eax
push ecx
push dword [ebp - 0xf4]
mov ecx, edi
call fcn.1003b940
jmp 0x1003ac76
call dword [0x100431c0]
mov ecx, edi
call esi
mov edi, dword [ebp - 0xf0]
lea ecx, [ebp - 0x140]
push 1
push ecx
push ecx
push eax
push ecx
push dword [ebp - 0xf4]
mov ecx, edi
call fcn.1003b940
mov byte [ebp - 0x101], 1
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jne 0x1003ad8e
mov eax, dword [edi]
cmp dword [eax + 8], 0
jne 0x1003ad8e
cmp dword [edi + 0x18], 0
je 0x1003ad8e
call fcn.1003a910
test al, al
je 0x1003acc2
lea eax, [ebp - 0xf4]
push eax
push 0x10005380
push 1
push 0
push 0x1000a154
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x1003ad14
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xf8], 0
push eax
call dword [sym.imp.OLEAUT32.dll_VarDecRound]
test eax, eax
js 0x1003ad14
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0xf4]
push ecx
push 0x10005380
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [ebp - 0xf8]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
cmp dword [ebp - 0xf4], 0
je 0x1003b7e6
mov edi, dword [edi + 0x14]
mov eax, dword [edi]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax]
cmp dword [eax + 0x1c], 0
je 0x1003ad4e
call dword [0x100431c0]
mov ecx, edi
call esi
push 1
lea ecx, [ebp - 0x140]
push ecx
jmp 0x1003ad60
call dword [0x100431c0]
mov ecx, edi
call esi
push dword [ebp - 0x124]
push 0
mov edi, dword [ebp - 0xf0]
push ecx
push eax
push ecx
push dword [ebp - 0xf4]
mov ecx, edi
call fcn.1003b940
mov ecx, dword [edi]
mov eax, dword [ebp - 0xf4]
mov dword [ecx + 8], eax
mov ecx, dword [edi]
mov eax, dword [edi + 0x18]
mov dword [ecx + 0xc], eax
jmp 0x1003b7e6
mov eax, dword [edi]
mov ebx, dword [eax + 8]
mov dword [ebp - 0xfc], ebx
test ebx, ebx
jne 0x1003ada5
test ecx, ecx
je 0x1003b7e6
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x120], 0
mov byte [ebp - 4], 2
test ebx, ebx
je 0x1003ade7
mov eax, dword [eax + 0xc]
mov dword [edi + 0x18], eax
jmp 0x1003adef
mov ebx, ecx
mov dword [ebp - 0xfc], ecx
mov esi, dword [ebx]
lea eax, [ebp - 0x100]
push eax
push 0x1000db28
push ebx
mov esi, dword [esi]
mov ecx, esi
call dword [0x100431c0]
call esi
test eax, eax
js 0x1003ae2b
mov eax, dword [ebp - 0x100]
lea edx, [ebp - 0x118]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x20]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x1003b18c
mov bl, 1
lea edi, [eax - 1]
mov dword [ebp - 0xf8], edi
test edi, edi
js 0x1003ae8a
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0xec]
push ecx
push edi
push eax
mov esi, dword [eax]
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x100431c0]
call esi
test eax, eax
jne 0x1003ae82
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf0]
test eax, eax
js 0x1003ae85
cmp dword [ecx + 0x18], 0
jge 0x1003ae85
xor bl, bl
dec edi
jmp 0x1003ae3e
mov dword [ecx + 0x18], eax
jmp 0x1003ae92
test bl, bl
je 0x1003b180
mov dword [ebp - 0x110], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x100]
push ecx
push 0x1000d384
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x100431c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003afad
lea eax, [ebp - 0x120]
push eax
push 0x10005380
push 1
push 0
push 0x1000a154
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1003b126
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x128]
push ecx
push 0x1000db28
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x100431c0]
call esi
test eax, eax
js 0x1003b126
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x110]
push ecx
push 0x1000d384
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x100431c0]
call esi
mov edi, eax
test edi, edi
js 0x1003b126
mov ebx, dword [ebp - 0x118]
dec ebx
test ebx, ebx
js 0x1003afa5
mov dword [ebp - 0x108], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xec]
mov eax, dword [ebp - 0x100]
push ecx
push ebx
push eax
mov esi, dword [eax]
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x100431c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003b00a
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x1003afa1
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov byte [ebp - 4], 3
test edi, edi
js 0x1003b126
mov eax, dword [ebp - 0x110]
lea edx, [ebp - 0x130]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x100431c0]
call esi
mov ebx, dword [ebp - 0xf8]
test eax, eax
je 0x1003afed
mov eax, dword [ebp - 0x110]
push ebx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x100431c0]
call esi
mov edi, eax
test edi, edi
js 0x1003b12c
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x1003b156
mov ebx, eax
jmp 0x1003b15c
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0x108]
push ecx
push 0x100053b0
push ebx
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x100431c0]
call esi
test eax, eax
jns 0x1003b06a
mov eax, dword [ebp - 0x100]
mov esi, dword [eax]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, dword [esi + 0x18]
mov ecx, esi
push eax
push ebx
push dword [ebp - 0x100]
call dword [0x100431c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003b06a
mov byte [ebp - 4], 6
jmp 0x1003af87
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x18]
mov ecx, eax
and ecx, 0xfffff00
cmp eax, 0x800300fc
jg 0x1003b0a0
cmp eax, 0x800300fb
jge 0x1003b0b6
cmp eax, 0x80030002
jl 0x1003b0ae
cmp eax, 0x80030003
jle 0x1003b0b6
cmp eax, 0x80030050
je 0x1003b0b6
jmp 0x1003b0ae
cmp eax, 0x80030104
jl 0x1003b0ae
cmp eax, 0x80030105
jle 0x1003b0b6
cmp ecx, 0x40e00
jne 0x1003b0c7
push 0
push dword [ebp - 0x108]
push 0
push 0x10000000
jmp 0x1003b0d3
push 0
push dword [ebp - 0x108]
push 0
push 0
mov eax, dword [ebp - 0x128]
lea ecx, [ebp - 0xec]
push ecx
push eax
mov esi, dword [eax]
mov esi, dword [esi + 0xc]
mov ecx, esi
call dword [0x100431c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003b0ff
mov byte [ebp - 4], 7
jmp 0x1003af87
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x1003b11d
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov byte [ebp - 4], 3
jmp 0x1003af48
mov ebx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0x100]
mov esi, dword [eax]
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, dword [esi + 0x18]
mov ecx, esi
push eax
push ebx
push dword [ebp - 0x100]
call dword [0x100431c0]
call esi
mov ebx, dword [ebp - 0xfc]
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x110]
test eax, eax
je 0x1003b17a
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov byte [ebp - 4], 2
jmp 0x1003b186
mov ebx, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xf0]
mov eax, dword [edi]
cmp dword [eax + 0x1c], 0
je 0x1003b2ce
cmp byte [ebp - 0x101], 0
jne 0x1003b2ce
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x10c], 0
mov eax, dword [edi]
mov esi, dword [eax + 0x60]
mov ecx, esi
call dword [0x100431c0]
mov ecx, edi
call esi
mov edi, dword [ebp - 0xf0]
lea ecx, [ebp - 0x140]
push 1
push ecx
push ecx
push eax
push ecx
push ebx
mov ecx, edi
call fcn.1003b940
inc dword [ebp - 0x118]
lea eax, [ebp - 0x10c]
mov esi, dword [ebx]
push eax
push 0x1000d384
push ebx
mov esi, dword [esi]
mov ecx, esi
call dword [0x100431c0]
call esi
test eax, eax
js 0x1003b240
mov eax, dword [ebp - 0x10c]
push 0
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x100431c0]
call esi
mov ecx, dword [ebp - 0x10c]
mov edi, eax
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
test edi, edi
mov edi, dword [ebp - 0xf0]
jns 0x1003b2ce
mov esi, dword [ebx]
lea eax, [ebp - 0xfc]
push eax
push 0x1000db28
push ebx
mov esi, dword [esi]
mov ecx, esi
mov dword [ebp - 0xfc], 0
call dword [0x100431c0]
call esi
test eax, eax
js 0x1003b2ce
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x1003b28d
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov dword [ebp - 0x114], 0
mov eax, dword [ebp - 0xfc]
mov esi, dword [eax]
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, dword [esi + 0x18]
mov ecx, esi
push eax
push 0
push dword [ebp - 0xfc]
call dword [0x100431c0]
call esi
mov eax, dword [ebp - 0xfc]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x1003b2da
mov ebx, eax
mov ecx, dword [ebp - 0x11c]
test ecx, ecx
je 0x1003b304
push dword [edi + 0x18]
mov esi, dword [ecx]
push ebx
push dword [ebp - 0x118]
push dword [ebp - 0x100]
mov esi, dword [esi + 0xc]
push ecx
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [edi]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1003b338
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [edi]
mov dword [eax + 8], 0
mov eax, dword [edi]
mov dword [eax + 8], ebx
mov ecx, dword [edi]
mov eax, dword [edi + 0x18]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x1003b367
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x1003b38b
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov dword [ebp - 0x114], 0
mov ecx, dword [ebp - 0x100]
test ecx, ecx
je 0x1003b3af
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov dword [ebp - 0x100], 0
mov eax, dword [edi]
push dword [eax + 8]
push 0
call dword [sym.imp.OLEAUT32.dll_CreateErrorInfo]
cmp dword [edi + 0x18], 0
jl 0x1003b7aa
mov edi, dword [edi + 0x14]
lea esp, [esp]
test edi, edi
je 0x1003b7a4
mov eax, dword [edi]
mov esi, dword [eax + 0x54]
mov ecx, esi
call dword [0x100431c0]
mov ecx, edi
call esi
movzx eax, ax
cmp eax, 5
jne 0x1003b916
mov ebx, dword [edi + 0x80]
lea eax, [edi - 0xc]
mov dword [ebp - 0x124], eax
xor esi, esi
xor eax, eax
mov edx, dword [ebx + 8]
test edx, edx
jle 0x1003b437
nop
test eax, eax
js 0x1003b42e
cmp eax, edx
jge 0x1003b42e
mov ecx, dword [ebx + 4]
cmp edx, 2
jl 0x1003b423
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x1003b42e
cmp dword [ecx + 8], 0
je 0x1003b42e
inc esi
inc eax
cmp eax, edx
jl 0x1003b410
test esi, esi
jne 0x1003b47b
mov ebx, dword [edi + 0x7c]
xor esi, esi
xor eax, eax
mov edx, dword [ebx + 8]
test edx, edx
jle 0x1003b916
lea esp, [esp]
test eax, eax
js 0x1003b46e
cmp eax, edx
jge 0x1003b46e
mov ecx, dword [ebx + 4]
cmp edx, 2
jl 0x1003b463
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x1003b46e
cmp dword [ecx + 8], 0
je 0x1003b46e
inc esi
inc eax
cmp eax, edx
jl 0x1003b450
test esi, esi
je 0x1003b916
mov edi, dword [ebp - 0x124]
push edi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x100431c0]
call esi
cmp dword [edi + 0x24], 0
jne 0x1003b794
lea eax, [ebp - 0x20]
mov dword [ebp - 0x28], 0
push eax
push 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call dword [sym.imp.OLEAUT32.dll_SetErrorInfo]
test eax, eax
jne 0x1003b4d7
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x1003b4d7
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_CreateErrorInfo]
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x3c], eax
mov eax, 0xd
mov word [ebp - 0xc0], ax
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x34], 3
mov byte [ebp - 4], 0xa
mov eax, 0x4003
mov word [ebp - 0xb0], ax
lea eax, [ebp - 0x12c]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xf0]
push ecx
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0xfc], 0
push dword [eax + 0x18]
mov dword [ebp - 0x110], 0
call fcn.1003a000
mov ebx, dword [edi + 0x88]
mov ecx, ebx
call fcn.1003be60
test eax, eax
je 0x1003b6f2
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
xor eax, eax
mov dword [ebp - 0x10c], eax
mov eax, dword [0x100428d4]
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1003b5f4
cmp byte [eax + 0x11], 0
je 0x1003b5f4
push 0xb0
push 0xe00000
push dword [0x100428d0]
call dword [sym.imp.MSDART.DLL_MpHeapAlloc]
add esp, 0xc
mov dword [ebp - 0x130], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x1003b5d0
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.1003c160
jmp 0x1003b5d2
xor eax, eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x1003b6f2
push eax
push 0
push 0x2001
push dword [ebx + 0x10]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x1003b6f2
mov edx, dword [ebp - 0x40]
xor esi, esi
lea esp, [esp]
cmp esi, dword [ebx + 8]
jge 0x1003b6de
test esi, esi
js 0x1003b6d8
mov eax, dword [ebx + 8]
cmp esi, eax
jge 0x1003b6d8
mov edi, dword [ebx + 4]
cmp eax, 2
jl 0x1003b627
mov edi, dword [edi + esi*4]
test edi, edi
je 0x1003b6d8
mov eax, edx
test eax, eax
jns 0x1003b638
add eax, 7
sar eax, 3
mov ecx, edx
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x1003b64a
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, byte [eax + edi + 0x14]
shr al, cl
test al, 1
je 0x1003b6d8
lea eax, [ebp - 0xc0]
mov ecx, ebx
push eax
push edi
call fcn.1003bea0
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov dword [ebp - 0x10c], edx
mov eax, dword [ecx]
mov dword [ebp - 0xf8], eax
cmp eax, 5
jne 0x1003b6b4
mov edx, dword [ebp - 0x40]
mov eax, edx
test eax, eax
jns 0x1003b68b
add eax, 7
sar eax, 3
lea ecx, [eax + edi]
movzx eax, byte [ecx + 0x14]
and edx, reloc.OLEAUT32.dll_VariantInit
jns 0x1003b6a2
dec edx
or edx, 0xfffffff8
inc edx
btr eax, edx
mov edx, dword [ebp - 0x10c]
mov byte [ecx + 0x14], al
mov eax, dword [ebp - 0xf8]
sub dword [ebp - 0xfc], 1
je 0x1003b6de
test edx, edx
js 0x1003b77f
cmp eax, 4
je 0x1003b6de
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x108]
mov dword [eax], ecx
mov edx, dword [ebp - 0x40]
inc esi
jmp 0x1003b600
mov eax, dword [ebp - 0x10c]
test eax, eax
js 0x1003b77f
mov edi, dword [ebp - 0x124]
mov edi, dword [edi + 0x8c]
mov ecx, edi
call fcn.1003be60
test eax, eax
je 0x1003b77f
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], 1
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [0x100428d4]
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1003b825
cmp byte [eax + 0x11], 0
je 0x1003b825
push 0xb0
push 0xe00000
push dword [0x100428d0]
call dword [sym.imp.MSDART.DLL_MpHeapAlloc]
add esp, 0xc
mov dword [ebp - 0x130], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x1003b77f
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.1003c160
test eax, eax
je 0x1003b77f
push eax
push 0
push 0x2001
push dword [edi + 0x10]
call dword [sym.imp.USER32.dll_PostMessageW]
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.1003c2f0
mov edi, dword [ebp - 0x124]
mov eax, dword [edi]
push edi
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov edi, dword [ebp - 0xf0]
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x1003b7c8
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x128]
test eax, eax
je 0x1003b7e6
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi]
mov ebx, dword [ebp - 0x11c]
dec dword [eax + 4]
test ebx, ebx
je 0x1003aab3
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x100431c0]
call esi
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x100431c0]
call esi
jmp 0x1003aab3
mov edx, dword [ebp - 0x40]
xor esi, esi
lea ebx, [ebx]
cmp esi, dword [edi + 8]
jge 0x1003b77f
test esi, esi
js 0x1003b910
mov eax, dword [edi + 8]
cmp esi, eax
jge 0x1003b910
mov ebx, dword [edi + 4]
cmp eax, 2
jl 0x1003b857
mov ebx, dword [ebx + esi*4]
test ebx, ebx
je 0x1003b910
mov eax, edx
test eax, eax
jns 0x1003b868
add eax, 7
sar eax, 3
mov ecx, edx
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x1003b87a
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, byte [eax + ebx + 0x14]
shr al, cl
test al, 1
je 0x1003b910
lea eax, [ebp - 0xc0]
mov ecx, edi
push eax
push ebx
call fcn.1003bea0
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov dword [ebp - 0xfc], edx
mov eax, dword [ecx]
mov dword [ebp - 0x10c], eax
cmp eax, 5
jne 0x1003b8e7
mov edx, dword [ebp - 0x40]
mov eax, edx
test eax, eax
jns 0x1003b8bb
add eax, 7
sar eax, 3
lea ecx, [eax + ebx]
movzx eax, byte [ecx + 0x14]
and edx, reloc.OLEAUT32.dll_VariantInit
jns 0x1003b8d2
dec edx
or edx, 0xfffffff8
inc edx
btr eax, edx
mov edx, dword [ebp - 0xfc]
mov byte [ecx + 0x14], al
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10c]
sub dword [ebp - 0x110], 1
je 0x1003b77f
test edx, edx
js 0x1003b77f
cmp eax, 4
je 0x1003b77f
mov eax, dword [ebp - 0xf8]
mov dword [ecx], eax
mov edx, dword [ebp - 0x40]
inc esi
jmp 0x1003b830
mov eax, dword [edi + 0x10]
sub edi, eax
neg edi
sbb edi, edi
and edi, eax
jmp 0x1003b3d0