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

Disassembly:
push 0xffffffffffffffff
push 0x4e850a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x160
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x198]
mov eax, dword [esp + 0x18c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x19c]
push ecx
mov ecx, dword [esp + 0x198]
push edx
mov edx, dword [esp + 0x198]
push ecx
push edx
push 0x4ebd38
push 0x4ebd38
push eax
mov eax, dword [esp + 0x19c]
push eax
push 0x10
mov ecx, edi
call fcn.0043b140
push 0x5194ec
mov dword [esp + 0x17c], 0
mov dword [edi], 0x4f51a0
mov dword [esp + 0x84], 0x5194ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [edi + 0x24]
mov ebp, dword [edi + 0x2c]
mov ecx, dword [esp + 0x184]
mov esi, dword [ecx + 0x48]
mov ebx, dword [edi + 0x28]
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x34], eax
add ebp, eax
mov eax, dword [edi + 0x20]
shl esi, 2
mov dword [esp + 0x20], eax
add ebx, eax
mov eax, dword [esp + 0x1b0]
not esi
and eax, 0x10
xor ecx, ecx
and esi, 0x10000
xor edi, edi
or eax, ecx
mov byte [esp + 0x178], 1
mov dword [esp + 0x54], edx
jne 0x49fb08
mov edi, 0x10000000
mov ecx, dword [esp + 0x1b0]
mov eax, ecx
and eax, 0x8000
xor edx, edx
or eax, edx
je 0x49fb23
mov eax, 1
jmp 0x49fb25
xor eax, eax
test al, al
sete al
test al, al
jne 0x49fb34
or edi, 0x8000000
mov eax, ecx
and eax, 0x40
xor edx, edx
or eax, edx
je 0x49fb45
or edi, 0x800000
mov edx, dword [esp + 0x1b4]
mov eax, ecx
and eax, 0x80000000
or eax, edx
mov dword [esp + 0x30], 0
je 0x49fb67
mov dword [esp + 0x30], 0x800
mov eax, ecx
and eax, 0x80000
xor edx, edx
mov dword [esp + 0x4c], eax
or eax, edx
jne 0x49fb7b
or edi, 8
mov eax, ecx
and eax, 0x2000
xor edx, edx
or edi, 1
or eax, edx
je 0x49fb91
or edi, 0x4000
mov eax, ecx
and eax, 0x1000
xor edx, edx
or eax, edx
je 0x49fba4
or edi, 0x200
and ecx, 0x10000
xor eax, eax
mov dword [esp + 0x3c], ecx
or ecx, eax
je 0x49fbb7
or edi, 4
mov eax, dword [esp + 0x4c]
xor ecx, ecx
or eax, ecx
je 0x49fbc4
or edi, 4
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x49fbce
or edi, eax
push 0x170
call fcn.004c86a5
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x178], 2
je 0x49fc00
mov ecx, dword [esp + 0x2c]
add ecx, 0x34
push ecx
mov ecx, eax
call fcn.004a9af0
mov dword [esp + 0x14], eax
jmp 0x49fc08
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x188]
mov dword [edx + 0x1c], ecx
mov edx, dword [esp + 0x184]
push eax
mov eax, dword [edx + 0x18]
push eax
mov eax, dword [esp + 0x28]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], eax
or edi, esi
mov dword [edx + 8], ebx
or edi, 0x40000000
push edi
mov byte [esp + 0x194], 1
mov dword [edx + 0xc], ebp
call fcn.004a7860
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x18]
push 0
push 0
push 0x101f
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
lea ecx, [esi + 0x48]
call fcn.004a7430
push 2
call fcn.00445f00
add esp, 4
test eax, eax
mov dword [esp + 0x30], eax
je 0x49fc8d
mov edx, eax
mov word [edx], 0
mov esi, dword [esp + 0x1a8]
cmp word [esi], 0x3d
mov byte [esp + 0x178], 3
jne 0x49fcf2
add esi, 2
mov dword [esp + 0x1a8], esi
mov ecx, esi
je 0x49fcd1
mov ax, word [esi]
test ax, ax
je 0x49fcd1
cmp ax, 0x3a
je 0x49fcca
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x49fcb8
mov dword [esp + 0x1a8], esi
mov eax, esi
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.004463d0
cmp word [esi], 0
je 0x49fcf2
add esi, 2
mov dword [esp + 0x1a8], esi
mov ecx, dword [esp + 0x184]
mov edx, dword [ecx + 0x18]
push 0
push 0
push 0x31
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebp, eax
or edi, 0xffffffff
cmp ebp, edi
je 0x49fd16
test ebp, ebp
jne 0x49fd1c
mov ebp, dword [0x51948c]
xor eax, eax
mov ax, word [esi]
cmp ax, 0x2a
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
jne 0x49fd34
mov word [esi], 0
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x1ac]
push ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
call fcn.00449970
add esp, 8
test eax, eax
jle 0x49fd6d
lea edx, [esp + 0x1a8]
push edx
call fcn.0043f2e0
mov edi, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x24], edi
mov esi, dword [esp + 0x1a8]
cmp word [esi], 0x3a
jne 0x49fd7d
add esi, 2
test esi, esi
mov eax, esi
mov dword [esp + 0x10], eax
je 0x49fda9
xor ecx, ecx
mov cx, word [esi]
test cx, cx
je 0x49fda9
cmp cx, 0x3a
je 0x49fda5
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x49fd91
jmp 0x49fdb7
mov dword [esp + 0x10], eax
cmp word [eax], 0
je 0x49fdbb
mov word [eax], 0
add eax, 2
mov dword [esp + 0x10], eax
test edi, edi
mov ebx, 0x190
jg 0x49fdd2
cmp word [esi], 0
jne 0x49fdd2
cmp word [esp + 0x20], 0
je 0x49fe2c
mov dword [esp + 0x20], edi
xor eax, eax
mov dword [esp + 0xb8], 0
mov ecx, 0x16
lea edi, [esp + 0xbc]
rep stosd dword es:[edi], eax
lea eax, [esp + 0xb8]
push eax
push 0x5c
push ebp
mov dword [esp + 0xd4], ebx
call dword [sym.imp.GDI32.dll_GetObjectW]
push esi
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xc0]
push edx
call fcn.0048a120
mov ecx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
mov dword [ecx + 0x40], eax
je 0x49fe2c
mov ebp, eax
lea edx, [esp + 0xb8]
push edx
xor eax, eax
push 0x5c
mov dword [esp + 0xc0], 0
mov ecx, 0x16
lea edi, [esp + 0xc4]
rep stosd dword es:[edi], eax
push ebp
mov dword [esp + 0xd4], ebx
call dword [sym.imp.GDI32.dll_GetObjectW]
push esi
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xc0]
push ecx
call fcn.0048a120
mov edx, dword [esp + 0x20]
mov dword [edx + 0xc8], eax
mov eax, dword [esp + 0x30]
add esp, 0xc
test eax, eax
mov esi, edx
jle 0x49fe8f
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x18]
push 1
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
or edi, 0xffffffff
test ebp, ebp
je 0x49feb5
cmp ebp, edi
je 0x49feb5
mov ecx, dword [esi + 0x18]
push 1
push ebp
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
fld qword [0x4f30b0]
lea edx, [esp + 0x58]
fstp qword [esp + 0x58]
push edx
fld qword [0x4f30b8]
lea eax, [esp + 0x14]
push eax
fstp qword [esp + 0x54]
mov ebx, SysReAllocStringLen
mov esi, edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], edi
call fcn.004497e0
mov ecx, dword [esp + 0x18]
add esp, 8
cmp word [ecx], 0
je 0x4a004d
mov edx, ecx
add edx, 2
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edi
call fcn.00449690
add esp, 0xc
test eax, eax
jle 0x49ff2d
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0
je 0x4a0046
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x14]
add ecx, 2
push eax
mov dword [esp + 0x18], ecx
call fcn.004497e0
mov ecx, dword [esp + 0x18]
add esp, 8
cmp word [ecx], 0
je 0x4a0046
mov edx, ecx
add edx, 2
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
call fcn.00449690
add esp, 0xc
test eax, eax
jle 0x49ff8f
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0
je 0x4a0046
mov edx, ecx
add edx, 2
xor eax, eax
mov dword [esp + 0x10], edx
push 0x3a
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x18]
push eax
call fcn.00449690
add esp, 0xc
test eax, eax
jle 0x49ffd0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x10]
cmp word [edx], 0
je 0x4a0046
mov eax, edx
add eax, 2
mov dword [esp + 0x10], eax
push 0x3a
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
call fcn.00449690
add esp, 0xc
test eax, eax
jle 0x4a000b
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x10]
cmp word [eax], 0
je 0x4a0046
mov ecx, eax
add ecx, 2
mov dword [esp + 0x10], ecx
push 0x3a
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
call fcn.00449690
add esp, 0xc
test eax, eax
jle 0x4a0046
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
test ebx, ebx
movzx edx, bl
jge 0x4a0051
mov edx, edi
test ebx, ebx
movzx ecx, bh
jge 0x4a0590
mov ecx, edi
mov eax, edi
fld qword [esp + 0x4c]
mov ebx, dword [esp + 0x14]
push ecx
fstp dword [esp]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004a7b80
xor eax, eax
mov dword [esp + 0x114], 0
mov ecx, 0x16
lea edi, [esp + 0x118]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x114]
push ecx
push 0x5c
push ebp
call dword [sym.imp.GDI32.dll_GetObjectW]
test esi, esi
mov edi, SysReAllocStringLen
mov dword [esp + 0x18], edi
jle 0x4a00b4
mov dword [esp + 0x114], esi
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x4a00c3
mov dword [esp + 0x118], eax
mov edx, dword [esp + 0x1b8]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x11c]
push ecx
call fcn.0048a120
mov edx, dword [esp + 0x1bc]
mov dword [ebx + 0xa0], eax
mov eax, edx
and eax, 0x80
xor ecx, ecx
add esp, 0xc
or eax, ecx
je 0x4a0101
or byte [ebx + 0x16d], 4
mov eax, edx
and eax, 0x100
xor ecx, ecx
or eax, ecx
je 0x4a0115
or byte [ebx + 0x16d], 8
mov eax, edx
and eax, 0x200
xor ecx, ecx
xor esi, esi
or eax, ecx
jne 0x4a0129
mov esi, 1
mov eax, edx
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x4a0139
or esi, 4
mov eax, edx
and eax, 0x800
xor ecx, ecx
or eax, ecx
je 0x4a0149
or esi, 0x10
mov eax, edx
and eax, 0x20000
xor ecx, ecx
or eax, ecx
je 0x4a015c
or esi, 0x8000
mov edx, dword [ebx + 0x18]
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x1037
push edx
call ebp
or esi, eax
push esi
mov ecx, ebx
call fcn.004a78d0
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1b0]
xor ecx, ecx
or eax, ecx
je 0x4a01a7
mov eax, dword [esp + 0x1b4]
and edx, 0xfff7ffff
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x1b4], eax
mov eax, edx
and eax, 0x4000
xor ecx, ecx
or eax, ecx
je 0x4a01bb
or byte [ebx + 0x16d], 1
mov eax, edx
and eax, 0x40000
xor ecx, ecx
or eax, ecx
je 0x4a01cf
or byte [ebx + 0x16d], 2
mov eax, edx
and eax, 0x80000
xor ecx, ecx
or eax, ecx
je 0x4a01e3
or byte [ebx + 0x16d], 0x20
mov eax, edx
and eax, 0x100000
xor ecx, ecx
or eax, ecx
je 0x4a01f7
or byte [ebx + 0x16d], 0x40
mov al, byte [esp + 0x54]
and al, 1
mov byte [esp + 0x2b], al
je 0x4a020a
or byte [ebx + 0x16d], 2
mov esi, dword [esp + 0x1ac]
lea ecx, [esp + 0x3c]
mov eax, 0xffffffff
push ecx
lea edx, [esp + 0x1b0]
push edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edi
call fcn.004495b0
mov eax, dword [esp + 0x44]
add esp, 8
test eax, eax
jl 0x4a0251
push eax
mov eax, dword [ebx + 0x18]
push 0
push 0x1001
push eax
call ebp
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x4a026d
mov ecx, dword [ebx + 0x18]
push eax
push 0
push 0x1026
push ecx
mov dword [ebx + 0x150], eax
call ebp
mov eax, dword [esp + 0x44]
test eax, eax
jl 0x4a0283
push eax
mov ecx, ebx
mov dword [ebx + 0x14c], eax
call fcn.004a7e00
mov ecx, dword [esp + 0x48]
cmp ecx, edi
je 0x4a031a
test esi, esi
je 0x4a02b2
mov ax, word [esi]
test ax, ax
je 0x4a02b2
jmp 0x4a02a0
cmp ax, 0x23
je 0x4a02b2
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a02a0
cmp word [esi], 0x23
jne 0x4a0314
add esi, 2
je 0x4a02d7
mov ax, word [esi]
test ax, ax
je 0x4a02d7
cmp ax, 0x23
je 0x4a02d7
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a02c5
cmp word [esi], 0x23
jne 0x4a0314
add esi, 2
je 0x4a0302
mov ax, word [esi]
test ax, ax
je 0x4a0302
lea ebx, [ebx]
cmp ax, 0x23
je 0x4a0302
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a02f0
cmp word [esi], 0x23
jne 0x4a0314
cmp word [esi + 2], 0x2a
jne 0x4a0314
mov ecx, 0xff0000
mov dword [ebx + 0x154], ecx
mov eax, dword [ebx + 0x154]
test eax, eax
jl 0x4a033d
mov eax, dword [esp + 0x1b0]
and eax, 0x10000
xor ecx, ecx
or eax, ecx
je 0x4a033d
or byte [ebx + 0x16d], 0x10
mov eax, dword [esp + 0x1a0]
mov ecx, dword [eax]
xor edx, edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x60], 7
cmp word [ecx], dx
mov eax, dword [ebx + 0x154]
sete byte [esp + 0x2a]
test eax, eax
mov dword [esp + 0x18], ecx
jl 0x4a038c
mov al, byte [ebx + 0x16d]
test al, 0x10
jne 0x4a0396
mov al, byte [ebx + 0x16d]
test al, 0x20
je 0x4a039e
or al, 0x80
mov byte [ebx + 0x16d], al
mov ebp, dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
cmp word [ecx], si
je 0x4a0440
nop
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x18c], 4
mov byte [esp + 0x28], 0
call fcn.004624a0
mov ecx, dword [esp + 0x38]
add esp, 0x14
test eax, eax
jge 0x4a03f6
test ecx, ecx
jl 0x4a0400
push ecx
push eax
push esi
mov ecx, ebx
call fcn.004a97a0
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x64]
push ecx
push esi
mov ecx, ebx
call fcn.004a9780
mov eax, dword [esp + 0x10]
test eax, eax
mov byte [esp + 0x178], 3
je 0x4a0431
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call ebp
mov eax, dword [esp + 0x18]
inc esi
cmp word [eax], 0
jne 0x4a03b0
fld qword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
fcomp qword [0x4f30b8]
mov dword [ecx + 0x40], esi
fnstsw ax
test ah, 0x41
jne 0x4a0467
fld qword [esp + 0x58]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.004a7bd0
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a0479
push 0
push eax
mov ecx, ebx
call fcn.004a7e20
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4a0489
push eax
mov ecx, ebx
call fcn.004a7de0
mov edx, dword [esp + 0x1a4]
mov ebp, dword [edx]
xor eax, eax
mov ecx, 0xc
lea edi, [esp + 0x88]
rep stosd dword es:[edi], eax
mov dword [esp + 0x88], SysReAllocStringLen
mov dword [esp + 0x84], 1
mov dword [esp + 0x8c], eax
mov dword [esp + 0x98], 0x4ebd38
mov ax, word [ebp]
test ax, ax
mov dword [esp + 0x14], ebp
je 0x4a067f
jmp 0x4a04e0
xor edi, edi
cmp ax, di
mov esi, ebp
je 0x4a050c
lea esp, [esp]
cmp ax, 0xd
je 0x4a0508
cmp ax, 0xa
je 0x4a0508
mov ax, word [ebp + 2]
add ebp, 2
cmp ax, di
jne 0x4a04f0
mov dword [esp + 0x14], ebp
cmp word [ebp], 0xd
mov eax, ebp
jne 0x4a051c
add ebp, 2
mov dword [esp + 0x14], ebp
cmp word [ebp], 0xa
jne 0x4a052a
add ebp, 2
mov dword [esp + 0x14], ebp
cmp word [eax], di
je 0x4a0532
mov word [eax], di
mov ax, word [esi]
cmp ax, di
mov dword [esp + 0x20], edi
je 0x4a0672
mov cl, byte [esp + 0x2a]
test cl, cl
jne 0x4a0557
mov ecx, dword [esp + 0x2c]
cmp edi, dword [ecx + 0x40]
jge 0x4a0672
mov cl, byte [esp + 0x2b]
test cl, cl
mov ebp, esi
je 0x4a059b
test ax, ax
je 0x4a0607
lea ebx, [ebx]
cmp ax, 9
jb 0x4a057c
cmp ax, 0xd
jbe 0x4a05f9
cmp ax, 0x20
je 0x4a05f9
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a0570
jmp 0x4a0607
sar ebx, 0x10
movzx eax, bl
jmp 0x4a005e
test ax, ax
je 0x4a05b2
cmp ax, 9
je 0x4a05f9
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a05a0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x40]
cmp edi, eax
mov dword [esp + 0x8c], edi
jl 0x4a05d9
lea ecx, [eax + 1]
mov dword [edx + 0x40], ecx
push 0
lea ecx, [esp + 0x64]
push ecx
push eax
mov ecx, ebx
call fcn.004a9780
test edi, edi
mov dword [esp + 0x98], ebp
jne 0x4a0630
lea edx, [esp + 0x84]
push edx
mov ecx, ebx
call fcn.004a78f0
mov dword [esp + 0x20], eax
jmp 0x4a0661
cmp word [esi], 0
je 0x4a0607
mov word [esi], 0
add esi, 2
test cl, cl
je 0x4a05b2
test esi, esi
je 0x4a05b2
nop
mov ax, word [esi]
cmp ax, 9
je 0x4a062b
cmp ax, 0xb
je 0x4a062b
cmp ax, 0xc
je 0x4a062b
cmp ax, 0x20
jne 0x4a05b2
add esi, 2
jmp 0x4a0610
cmp word [ebp], 0
je 0x4a0661
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x18]
lea eax, [esp + 0xb8]
push eax
push ecx
push 0x1074
push edx
mov dword [esp + 0xd0], edi
mov dword [esp + 0xdc], ebp
call dword [sym.imp.USER32.dll_SendMessageW]
mov ax, word [esi]
mov ebp, dword [esp + 0x14]
inc edi
test ax, ax
jne 0x4a0542
mov ax, word [ebp]
test ax, ax
jne 0x4a04e0
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b0]
push eax
push ecx
mov ecx, ebx
call fcn.00405c10
mov eax, 0x32
mov ecx, eax
movzx edx, cx
mov ecx, dword [ebx + 0x18]
movzx eax, ax
shl edx, 0x10
or edx, eax
push edx
push 1
push 0x100f
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a06d5
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x5194ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x170]
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x16c
ret 0x40