Function at 0x10037e50
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003c683
mov eax, dword fs:[0]
push eax
sub esp, 0x14c
mov eax, dword [0x1003e4a4]
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 0x10037ee5
mov ecx, dword [edi]
cmp dword [ecx + 0xc], 0
jl 0x10037ee5
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x10037ee5
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov eax, dword [edi]
mov dword [eax + 8], 0
mov eax, dword [edi]
cmp dword [eax + 4], 1
je 0x10037f54
cmp dword [eax + 8], 0
jne 0x10037f33
cmp ebx, 0x2f2
jbe 0x10037f33
lea eax, [ebp - 0xf4]
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SetErrorInfo]
test eax, eax
js 0x10037f33
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x10037f33
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.1003ad10
mov esp, ebp
pop ebp
ret
cmp byte [eax + 0x12], 0
je 0x10037f64
xor ecx, ecx
mov dword [ebp - 0x11c], ecx
jmp 0x10037fbd
mov edi, dword [edi + 0x14]
mov eax, dword [edi]
mov esi, dword [eax + 0x5c]
mov ecx, esi
call dword [0x1003f1c0]
mov ecx, edi
call esi
mov ebx, eax
mov dword [ebp - 0x11c], ebx
test ebx, ebx
jne 0x10037f93
mov ecx, dword [edi + 0x10]
cmp edi, ecx
je 0x10037f91
mov edi, ecx
test edi, edi
jne 0x10037f67
test ebx, ebx
mov ebx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x11c]
je 0x10037fb7
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x1003f1c0]
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 0x10037fdd
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x1003f1c0]
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 0x10038025
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 0x100380f6
lea eax, [ebp - 0xf4]
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SetErrorInfo]
test eax, eax
js 0x10038c66
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jne 0x1003820e
mov eax, dword [edi]
cmp dword [eax + 8], ecx
jne 0x10038104
cmp dword [edi + 0x18], ecx
je 0x10038104
lea eax, [ebp - 0xf4]
push eax
push 0x10004ed0
push 1
push ecx
push 0x1000a744
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x100380f6
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 0x100380c6
call dword [0x1003f1c0]
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.10038dd0
jmp 0x100380f6
call dword [0x1003f1c0]
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.10038dd0
mov byte [ebp - 0x101], 1
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jne 0x1003820e
mov eax, dword [edi]
cmp dword [eax + 8], 0
jne 0x1003820e
cmp dword [edi + 0x18], 0
je 0x1003820e
call fcn.10037d90
test al, al
je 0x10038142
lea eax, [ebp - 0xf4]
push eax
push 0x10004ed0
push 1
push 0
push 0x1000a744
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x10038194
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xf8], 0
push eax
call dword [sym.imp.OLEAUT32.dll_VarDecRound]
test eax, eax
js 0x10038194
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0xf4]
push ecx
push 0x10004ed0
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov eax, dword [ebp - 0xf8]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
cmp dword [ebp - 0xf4], 0
je 0x10038c66
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 0x100381ce
call dword [0x1003f1c0]
mov ecx, edi
call esi
push 1
lea ecx, [ebp - 0x140]
push ecx
jmp 0x100381e0
call dword [0x1003f1c0]
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.10038dd0
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 0x10038c66
mov eax, dword [edi]
mov ebx, dword [eax + 8]
mov dword [ebp - 0xfc], ebx
test ebx, ebx
jne 0x10038225
test ecx, ecx
je 0x10038c66
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 0x10038267
mov eax, dword [eax + 0xc]
mov dword [edi + 0x18], eax
jmp 0x1003826f
mov ebx, ecx
mov dword [ebp - 0xfc], ecx
mov esi, dword [ebx]
lea eax, [ebp - 0x100]
push eax
push 0x1000bf04
push ebx
mov esi, dword [esi]
mov ecx, esi
call dword [0x1003f1c0]
call esi
test eax, eax
js 0x100382ab
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 [0x1003f1c0]
call esi
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x1003860c
mov bl, 1
lea edi, [eax - 1]
mov dword [ebp - 0xf8], edi
test edi, edi
js 0x1003830a
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 [0x1003f1c0]
call esi
test eax, eax
jne 0x10038302
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf0]
test eax, eax
js 0x10038305
cmp dword [ecx + 0x18], 0
jge 0x10038305
xor bl, bl
dec edi
jmp 0x100382be
mov dword [ecx + 0x18], eax
jmp 0x10038312
test bl, bl
je 0x10038600
mov dword [ebp - 0x110], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x100]
push ecx
push 0x1000bd94
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003842d
lea eax, [ebp - 0x120]
push eax
push 0x10004ed0
push 1
push 0
push 0x1000a744
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x100385a6
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x128]
push ecx
push 0x1000bf04
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x1003f1c0]
call esi
test eax, eax
js 0x100385a6
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x110]
push ecx
push 0x1000bd94
push eax
mov esi, dword [eax]
mov esi, dword [esi]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov edi, eax
test edi, edi
js 0x100385a6
mov ebx, dword [ebp - 0x118]
dec ebx
test ebx, ebx
js 0x10038425
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 [0x1003f1c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003848a
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x10038421
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov byte [ebp - 4], 3
test edi, edi
js 0x100385a6
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 [0x1003f1c0]
call esi
mov ebx, dword [ebp - 0xf8]
test eax, eax
je 0x1003846d
mov eax, dword [ebp - 0x110]
push ebx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov edi, eax
test edi, edi
js 0x100385ac
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x100385d6
mov ebx, eax
jmp 0x100385dc
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0x108]
push ecx
push 0x10004f10
push ebx
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x1003f1c0]
call esi
test eax, eax
jns 0x100384ea
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 [0x1003f1c0]
call esi
mov edi, eax
test edi, edi
jns 0x100384ea
mov byte [ebp - 4], 6
jmp 0x10038407
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 0x18]
mov ecx, eax
and ecx, 0xfffff00
cmp eax, 0x800300fc
jg 0x10038520
cmp eax, 0x800300fb
jge 0x10038536
cmp eax, 0x80030002
jl 0x1003852e
cmp eax, 0x80030003
jle 0x10038536
cmp eax, 0x80030050
je 0x10038536
jmp 0x1003852e
cmp eax, 0x80030104
jl 0x1003852e
cmp eax, 0x80030105
jle 0x10038536
cmp ecx, 0x40e00
jne 0x10038547
push 0
push dword [ebp - 0x108]
push 0
push 0x10000000
jmp 0x10038553
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 [0x1003f1c0]
call esi
mov edi, eax
test edi, edi
jns 0x1003857f
mov byte [ebp - 4], 7
jmp 0x10038407
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x1003859d
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov byte [ebp - 4], 3
jmp 0x100383c8
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 [0x1003f1c0]
call esi
mov ebx, dword [ebp - 0xfc]
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x110]
test eax, eax
je 0x100385fa
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov byte [ebp - 4], 2
jmp 0x10038606
mov ebx, dword [ebp - 0xfc]
mov edi, dword [ebp - 0xf0]
mov eax, dword [edi]
cmp dword [eax + 0x1c], 0
je 0x1003874e
cmp byte [ebp - 0x101], 0
jne 0x1003874e
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x10c], 0
mov eax, dword [edi]
mov esi, dword [eax + 0x60]
mov ecx, esi
call dword [0x1003f1c0]
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.10038dd0
inc dword [ebp - 0x118]
lea eax, [ebp - 0x10c]
mov esi, dword [ebx]
push eax
push 0x1000bd94
push ebx
mov esi, dword [esi]
mov ecx, esi
call dword [0x1003f1c0]
call esi
test eax, eax
js 0x100386c0
mov eax, dword [ebp - 0x10c]
push 0
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x1003f1c0]
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 [0x1003f1c0]
call esi
test edi, edi
mov edi, dword [ebp - 0xf0]
jns 0x1003874e
mov esi, dword [ebx]
lea eax, [ebp - 0xfc]
push eax
push 0x1000bf04
push ebx
mov esi, dword [esi]
mov ecx, esi
mov dword [ebp - 0xfc], 0
call dword [0x1003f1c0]
call esi
test eax, eax
js 0x1003874e
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x1003870d
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
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 [0x1003f1c0]
call esi
mov eax, dword [ebp - 0xfc]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x1003875a
mov ebx, eax
mov ecx, dword [ebp - 0x11c]
test ecx, ecx
je 0x10038784
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 [0x1003f1c0]
call esi
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov eax, dword [edi]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x100387b8
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
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 0x100387e7
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x1003880b
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov dword [ebp - 0x114], 0
mov ecx, dword [ebp - 0x100]
test ecx, ecx
je 0x1003882f
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
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 0x10038c2a
mov edi, dword [edi + 0x14]
lea esp, [esp]
test edi, edi
je 0x10038c24
mov eax, dword [edi]
mov esi, dword [eax + 0x54]
mov ecx, esi
call dword [0x1003f1c0]
mov ecx, edi
call esi
movzx eax, ax
cmp eax, 5
jne 0x10038d96
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 0x100388b7
nop
test eax, eax
js 0x100388ae
cmp eax, edx
jge 0x100388ae
mov ecx, dword [ebx + 4]
cmp edx, 2
jl 0x100388a3
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x100388ae
cmp dword [ecx + 8], 0
je 0x100388ae
inc esi
inc eax
cmp eax, edx
jl 0x10038890
test esi, esi
jne 0x100388fb
mov ebx, dword [edi + 0x7c]
xor esi, esi
xor eax, eax
mov edx, dword [ebx + 8]
test edx, edx
jle 0x10038d96
lea esp, [esp]
test eax, eax
js 0x100388ee
cmp eax, edx
jge 0x100388ee
mov ecx, dword [ebx + 4]
cmp edx, 2
jl 0x100388e3
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x100388ee
cmp dword [ecx + 8], 0
je 0x100388ee
inc esi
inc eax
cmp eax, edx
jl 0x100388d0
test esi, esi
je 0x10038d96
mov edi, dword [ebp - 0x124]
push edi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x1003f1c0]
call esi
cmp dword [edi + 0x24], 0
jne 0x10038c14
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 0x10038957
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x10038957
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.10037550
mov ebx, dword [edi + 0x88]
mov ecx, ebx
call fcn.100393d0
test eax, eax
je 0x10038b72
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 [0x1003e830]
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10038a74
cmp byte [eax + 0x11], 0
je 0x10038a74
push 0xb0
push 0xf00000
push dword [0x1003e800]
call dword [sym.imp.MSDART.DLL_MpHeapAlloc]
add esp, 0xc
mov dword [ebp - 0x130], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x10038a50
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.100396d0
jmp 0x10038a52
xor eax, eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x10038b72
push eax
push 0
push 0x2001
push dword [ebx + 0x10]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10038b72
mov edx, dword [ebp - 0x40]
xor esi, esi
lea esp, [esp]
cmp esi, dword [ebx + 8]
jge 0x10038b5e
test esi, esi
js 0x10038b58
mov eax, dword [ebx + 8]
cmp esi, eax
jge 0x10038b58
mov edi, dword [ebx + 4]
cmp eax, 2
jl 0x10038aa7
mov edi, dword [edi + esi*4]
test edi, edi
je 0x10038b58
mov eax, edx
test eax, eax
jns 0x10038ab8
add eax, 7
sar eax, 3
mov ecx, edx
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x10038aca
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, byte [eax + edi + 0x14]
shr al, cl
test al, 1
je 0x10038b58
lea eax, [ebp - 0xc0]
mov ecx, ebx
push eax
push edi
call fcn.10039410
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 0x10038b34
mov edx, dword [ebp - 0x40]
mov eax, edx
test eax, eax
jns 0x10038b0b
add eax, 7
sar eax, 3
lea ecx, [eax + edi]
movzx eax, byte [ecx + 0x14]
and edx, reloc.OLEAUT32.dll_VariantInit
jns 0x10038b22
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 0x10038b5e
test edx, edx
js 0x10038bff
cmp eax, 4
je 0x10038b5e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x108]
mov dword [eax], ecx
mov edx, dword [ebp - 0x40]
inc esi
jmp 0x10038a80
mov eax, dword [ebp - 0x10c]
test eax, eax
js 0x10038bff
mov edi, dword [ebp - 0x124]
mov edi, dword [edi + 0x8c]
mov ecx, edi
call fcn.100393d0
test eax, eax
je 0x10038bff
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], 1
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [0x1003e830]
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10038ca5
cmp byte [eax + 0x11], 0
je 0x10038ca5
push 0xb0
push 0xf00000
push dword [0x1003e800]
call dword [sym.imp.MSDART.DLL_MpHeapAlloc]
add esp, 0xc
mov dword [ebp - 0x130], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x10038bff
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.100396d0
test eax, eax
je 0x10038bff
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.10039860
mov edi, dword [ebp - 0x124]
mov eax, dword [edi]
push edi
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov edi, dword [ebp - 0xf0]
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x10038c48
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x128]
test eax, eax
je 0x10038c66
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi]
mov ebx, dword [ebp - 0x11c]
dec dword [eax + 4]
test ebx, ebx
je 0x10037f33
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x1003f1c0]
call esi
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x1003f1c0]
call esi
jmp 0x10037f33
mov edx, dword [ebp - 0x40]
xor esi, esi
lea ebx, [ebx]
cmp esi, dword [edi + 8]
jge 0x10038bff
test esi, esi
js 0x10038d90
mov eax, dword [edi + 8]
cmp esi, eax
jge 0x10038d90
mov ebx, dword [edi + 4]
cmp eax, 2
jl 0x10038cd7
mov ebx, dword [ebx + esi*4]
test ebx, ebx
je 0x10038d90
mov eax, edx
test eax, eax
jns 0x10038ce8
add eax, 7
sar eax, 3
mov ecx, edx
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x10038cfa
dec ecx
or ecx, 0xfffffff8
inc ecx
mov al, byte [eax + ebx + 0x14]
shr al, cl
test al, 1
je 0x10038d90
lea eax, [ebp - 0xc0]
mov ecx, edi
push eax
push ebx
call fcn.10039410
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 0x10038d67
mov edx, dword [ebp - 0x40]
mov eax, edx
test eax, eax
jns 0x10038d3b
add eax, 7
sar eax, 3
lea ecx, [eax + ebx]
movzx eax, byte [ecx + 0x14]
and edx, reloc.OLEAUT32.dll_VariantInit
jns 0x10038d52
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 0x10038bff
test edx, edx
js 0x10038bff
cmp eax, 4
je 0x10038bff
mov eax, dword [ebp - 0xf8]
mov dword [ecx], eax
mov edx, dword [ebp - 0x40]
inc esi
jmp 0x10038cb0
mov eax, dword [edi + 0x10]
sub edi, eax
neg edi
sbb edi, edi
and edi, eax
jmp 0x10038850