Function at 0x10050e7d
Capabilities:
Enumerate gui resources
Get thread local storage value

Disassembly:
mov eax, 0x10070fe7
call fcn.1006f8a0
sub esp, 0x15c
push ebx
push esi
xor esi, esi
mov byte [ebp - 0x41], dl
push edi
xor ebx, ebx
mov edi, ecx
inc esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], ebx
lea ecx, [ebp - 0xb0]
push esi
mov dword [ebp - 0x34], edi
call fcn.100221ae
push 3
mov dword [ebp - 0x1c], 0x27c38d1e
mov dword [ebp - 0x14], ebx
pop ecx
jmp 0x10050ecc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 0xfff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10050ebe
mov dword [ebp - 0x14], ebx
jmp 0x10050ee5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb0]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10050ed6
mov dword [ebp - 0x20], ebx
jmp 0x100510c4
mov dword [ebp - 0x3c], 0x76ff55e0
mov dword [ebp - 0x2c], 0xca3c
mov dword [ebp - 0x40], 0x96e53fd1
mov dword [ebp - 0x3c], ebx
jmp 0x100510b7
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x24], 0xf109d40f
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x14], ebx
jmp 0x100510aa
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x30], 0x6a6d
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
cmp dword [ebp + eax*4 - 0x68], ebx
jne 0x10050f7d
cmp dword [ebp - 0x20], ebx
je 0x10050f70
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
cmp eax, 0xe1c2a911
setne cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xb0]
setne cl
mov dword [eax], ecx
mov dword [ebp - 0x2c], ebx
jmp 0x1005109d
mov dword [ebp - 0x18], 0xbd63
mov dword [ebp - 0x28], ebx
jmp 0x10050ff6
mov dword [ebp - 0x24], 0xb2ef5ead
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10050ff3
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jle 0x10050fdd
cmp dword [ebp - 0x18], ebx
je 0x10051055
cmp dword [ebp - 0x24], ebx
je 0x1005103a
cmp dword [ebp - 0x2c], ebx
je 0x1005100e
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0xb0]
cmp ecx, dword [eax]
jle 0x1005102e
mov ecx, ebx
cmp dword [ebp - 0x38], ebx
je 0x10051030
mov ecx, esi
xor eax, eax
test ecx, ecx
setne al
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x14], eax
jge 0x10051045
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x60]
mov edx, esi
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x24], ebx
jne 0x10051057
mov edx, ebx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xb0]
setle cl
cmp ecx, 3
sbb ecx, ecx
xor edx, edx
neg ecx
cmp dword [eax], ecx
mov eax, dword [ebp - 0x3c]
setge dl
xor ecx, ecx
mov dword [ebp - 0x40], edx
mov edx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x40], eax
setne cl
cmp ecx, edx
jge 0x10051095
mov eax, esi
cmp dword [ebp - 0x20], ebx
jne 0x10051097
mov eax, ebx
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jle 0x10050fd1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x10050f28
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 2
jle 0x10050f0f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x10050ef2
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0xb0]
call fcn.10022230
mov dword [ebp - 0x2c], 0x642c
mov dword [ebp - 0x38], 0xbfbd3aeb
mov dword [ebp - 0x14], 0xd2f38d9
mov dword [ebp - 0x24], 0x8b92
mov dword [ebp - 0x1c], 0xe094bf7d
mov dword [ebp - 0x28], 0xffffffff
cmp dword [ebp - 0x2c], ebx
je 0x10051165
mov eax, dword [ebp - 0x2c]
dec eax
dec eax
je 0x10051140
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfe6d39c7
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x2c]
jge 0x10051136
mov eax, ebx
cmp dword [ebp - 0x38], ebx
je 0x10051138
mov eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
jmp 0x10051143
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x24], ebx
je 0x10051165
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10051243
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
jmp 0x10051243
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x1c], 0xa5c25cce
mov dword [ebp - 0x18], ebx
jmp 0x10051189
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb4], 0x64f8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x10051178
cmp dword [ebp - 0x14], ebx
jne 0x10051198
cmp dword [ebp - 0x38], ebx
je 0x1005119b
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0xb4]
imul eax, eax, 0xa381
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
setle dl
neg edx
je 0x100511d5
mov ecx, esi
cmp dword [ebp - 0x1c], ebx
jne 0x100511d7
mov ecx, ebx
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setl dl
xor ecx, ecx
cmp eax, edx
setl cl
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp dword [ebp - 0x20], ecx
mov byte [ebp - 0xd], bl
jg 0x10051226
cmp byte [ebp - 0xd], bl
je 0x10051243
push 0x1fe3
push ebx
push ebx
push 0xc90
call dword [sym.imp.GDI32.dll_PolyPolygon]
jmp 0x10051243
cmp byte [ebp - 0xd], bl
je 0x10051243
push ebx
push ebx
push 0x1225
push 0x129
push ebx
push 0x10ab
call dword [sym.imp.GDI32.dll_GetCharacterPlacementW]
mov dword [ebp - 0x28], 0xfffffff2
cmp dword [ebp - 0x28], 0x11
jle 0x100513cf
mov dword [ebp - 0x24], 0x6ed4d344
mov dword [ebp - 0x40], 0x2512
cmp dword [ebp - 0x40], 0x51f
jge 0x100513a3
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x50]
push eax
push 0x10008b9c
call fcn.10058dbb
add esp, 0xc
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x4c]
push eax
push 0x10008b9c
call fcn.10058dbb
mov eax, dword [ebp - 0x50]
add esp, 0xc
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x1c], eax
cmp eax, edi
jle 0x100512b1
mov dword [ebp - 0x1c], edi
mov edi, eax
lea eax, [ebp - 0x98]
mov dword [ebp - 0x98], ebx
push eax
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
call fcn.10022c02
mov dword [ebp - 4], ebx
lea eax, [ebp - 0xa4]
push eax
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x88]
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
call fcn.10022c02
cmp dword [ebp - 0x4c], 0
mov edx, ebx
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x30], ebx
jle 0x1005135f
mov ebx, dword [ebp - 0x74]
mov eax, edx
mov ecx, edx
imul eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x1c]
mov dword [ebx + edx*4], eax
imul ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x4c]
sub eax, edx
add ecx, edi
inc edx
mov dword [esi + eax*4 - 4], ecx
mov ecx, dword [ebp - 0x4c]
cmp edx, ecx
jl 0x10051313
mov edi, dword [ebp - 0x74]
xor ebx, ebx
test ecx, ecx
jle 0x10051362
mov eax, edi
mov edx, esi
sub eax, esi
mov ebx, eax
mov eax, dword [edx]
cmp dword [ebx + edx], eax
cmovl eax, dword [ebx + edx]
lea edx, [edx + 4]
add dword [ebp - 0x30], eax
dec ecx
jne 0x10051349
xor ebx, ebx
jmp 0x10051362
mov edi, dword [ebp - 0x74]
push dword [ebp - 0x30]
push 0x10007bcc
call fcn.10058fef
pop ecx
pop ecx
test esi, esi
je 0x1005138b
push esi
call fcn.10059157
pop ecx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
or dword [ebp - 4], 0xffffffff
test edi, edi
je 0x100513a3
push edi
call fcn.10059157
pop ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x40], 0xf69ff98e
cmp dword [ebp - 0x24], ebx
jne 0x100513cc
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x2b52
setle cl
mov dword [ebp - 0x40], ecx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x11
jg 0x10051254
mov edi, dword [ebp - 0x34]
cmp byte [ebp - 0x41], 0
mov esi, dword [ebp + 8]
mov eax, dword [0x100768ac]
mov dword [ebp - 0x40], eax
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
je 0x10051684
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x10051684
push dword [ebp + 8]
movdqa xmm0, xmmword [0x10008c60]
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x134]
mov dword [ebp - 0x3c], ecx
push eax
push ebx
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], ebx
movdqu xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
call fcn.10027568
xor eax, eax
inc eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], 8
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x2c], 0x3c8d
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], 0xfffffff4
jle 0x1005163f
xor edi, edi
inc edi
mov dword [ebp - 0x28], 0xfffffffd
mov dword [ebp - 0x20], 0x7c2657a7
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x1c], 0xfd6ffbba
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x3c]
test eax, eax
je 0x100514df
mov eax, edi
cmp dword [ebp - 0x28], ebx
jne 0x10051499
mov eax, ebx
cmp eax, dword [ebp - 0x3c]
je 0x100514a5
mov edx, ebx
cmp dword [ebp - 0x3c], ebx
je 0x100514a7
mov edx, edi
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 0x6f9b
neg eax
sbb eax, eax
inc eax
cmp eax, 0xd816f93b
sbb ecx, ecx
neg ecx
sub ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x94]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 4], ecx
je 0x100514df
mov edx, edi
cmp dword [ebp - 0x14], ebx
jne 0x100514e1
mov edx, ebx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x3c]
jl 0x100515ba
mov dword [ebp - 0x38], 0xffffffff
lea ecx, [ebp - 0xd8]
push edi
call fcn.100221ae
mov dword [ebp - 0x18], ebx
jmp 0x10051525
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd8]
mov dword [eax + ecx*4], 0x7d8eb7bf
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10051512
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov ecx, 0xb13b1067
mov eax, dword [ebp - 0x38]
sub ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov eax, dword [ebp - 0xd8]
mov ecx, 0xfff7
setge dl
mov dword [eax], edx
lea eax, [edx - 0x55db]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xc010
mov eax, dword [ebp - 0x2c]
setl cl
xor edx, edx
cmp ecx, eax
setne dl
xor eax, eax
sub edx, dword [ebp - 0x30]
cmp edx, 0x115
setle al
xor ecx, ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
cmp eax, edi
mov eax, dword [ebp - 0x38]
setg cl
xor edx, edx
cmp ecx, eax
lea ecx, [ebp - 0xd8]
setl dl
inc edx
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x1c], edx
call fcn.10022230
jmp 0x1005162f
mov dword [ebp - 0x18], 0xaac5
mov dword [ebp - 0x2c], 0x15
jmp 0x10051629
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x20], 0xffffffe4
jmp 0x10051620
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], ebx
jl 0x1005161d
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
add eax, 0x8e27
mov dword [ecx + 4], eax
dec dword [ebp - 0x14]
jns 0x100515ec
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x13
jne 0x100515da
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xfffffffb
je 0x100515ca
dec dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0xfffffff4
jg 0x1005146a
mov edi, dword [ebp - 0x34]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.10022230
xor eax, eax
mov dword [esi + 8], 4
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], ebx
jmp 0x10051677
cmp dword [ebp - 0x20], ebx
jne 0x1005167d
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10051674
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x11
jne 0x10051660
mov dword [esi + 0xc], 0x100768ac
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], 0xfffffff9
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x100516a9
push ebx
call dword [sym.imp.USER32.dll_IsRectEmpty]
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 4
jne 0x10051775
xor eax, eax
inc eax
mov dword [ebp - 0x20], 0xb96ca2cb
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x20], 0x13
cmp dword [ebp - 0x20], 7
jg 0x10051768
push 3
pop ecx
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x18], ebx
jmp 0x1005170c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x14c], 0xb21a35ca
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x100516fb
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], ebx
jl 0x1005175c
mov dword [ebp - 0x18], 0xc4f27d27
mov eax, dword [ebp - 0x38]
cmp dword [ebp + eax*4 - 0xf4], ebx
jne 0x1005175c
mov dword [ebp - 0x18], ebx
jmp 0x10051752
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1005174c
push ebx
push 0x154d
call dword [sym.imp.USER32.dll_FlashWindow]
push 3
pop ecx
dec dword [ebp - 0x1c]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jle 0x10051731
dec dword [ebp - 0x38]
jns 0x10051719
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jle 0x100516ef
xor eax, eax
inc eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
je 0x100516b9
cmp edi, dword [ebp - 0x40]
jge 0x10051e99
push 4
pop esi
push esi
lea ecx, [ebp - 0x10c]
call fcn.100221ae
mov dword [ebp - 0x18], ebx
jmp 0x100517a1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x10051792
mov edi, dword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x100517ba
push ebx
push ebx
push ebx
call edi
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x100517ca
push ebx
call dword [sym.imp.USER32.dll_DestroyIcon]
lea ecx, [ebp - 0x10c]
call fcn.10022230
mov esi, 0x100768b0
lea ecx, [ebp - 0x124]
push 4
mov dword [ebp - 0x30], esi
call fcn.100221ae
push 4
mov dword [ebp - 0x18], ebx
pop edx
jmp 0x10051801
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x100517f2
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10051814
push ebx
push ebx
push ebx
call edi
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10051824
push ebx
call dword [sym.imp.USER32.dll_DestroyIcon]
lea ecx, [ebp - 0x124]
call fcn.10022230
cmp dword [ebp - 0x34], 0
jle 0x10051b00
mov edi, dword [esi]
xor eax, eax
mov dword [ebp - 0x14], 0xffffffff
inc eax
mov dword [ebp - 0x30], 6
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0x811fc80
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10051868
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0xfffffff6
setne cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x14]
cmp eax, 7
jg 0x1005188d
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edx, dword [esi + 4]
add esi, 8
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x14], 0x2c03342e
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], 0x17ba7da8
mov dword [ebp - 0x24], 0xe82b3f54
mov dword [ebp - 0x20], 0xa473
mov dword [ebp - 0x14], 0xffffffff
jmp 0x10051994
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 0x24], 0xd8f8f576
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x28], 0x1d
jmp 0x1005192a
mov dword [ebp - 0x18], 0x72226312
mov dword [ebp - 0x1c], 0x2f76ec75
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x10051921
mov dword [ebp - 0x1c], 0xfffe
inc dword [ebp - 0x1c]
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffff9
jne 0x10051914
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffffa
jg 0x100518fa
cmp dword [ebp - 0x30], ebx
jne 0x10051954
mov eax, dword [ebp - 0x38]
mov ecx, 0xa7ab5bf7
neg eax
sbb eax, eax
neg eax
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x28]
jl 0x10051951
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov ecx, 0xf93be41c
mov eax, dword [ebp - 0x24]
sub ecx, eax
je 0x10051966
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
cmp eax, 0x6407
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffea
jge 0x100518dc
mov dword [ebp - 0x14], ebx
jmp 0x100519fb
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0x9babe4a9
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x20], ebx
jne 0x100519c4
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0x105f
setge cl
xor eax, eax
cmp ecx, 1
setle al
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1a
jl 0x100519a3
test edx, edx
jne 0x10051a08
add esi, 8
xor eax, eax
mov dword [ebp - 0x18], 0xffffffff
inc eax
mov dword [ebp - 0x30], 0xa9831117
mov dword [ebp - 0x24], 0xc7dcd66a
lea ecx, [ebp - 0xcc]
push eax
call fcn.100221ae
push 3
lea ecx, [ebp - 0xe4]
mov dword [ebp - 4], 2
call fcn.100221ae
xor edx, edx
mov dword [ebp - 0x14], ebx
inc edx
jmp 0x10051a57
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xcc]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10051a48
push 3
mov dword [ebp - 0x14], ebx
pop ecx
cmp dword [ebp - 0x14], ecx
jge 0x10051a87
push ecx
pop edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xe4]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10051a69
xor edx, edx
push 3
inc edx
pop ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], ebx
jne 0x10051abc
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setge dl
add edx, dword [ebp - 0x24]
cmp edx, 0xdade
jne 0x10051ab9
mov edx, ebx
jmp 0x10051abc
xor edx, edx
inc edx
mov eax, dword [ebp - 0xcc]
neg edx
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 0x18]
cmp edx, eax
mov eax, dword [ebp - 0xe4]
setne cl
mov dword [eax], ecx
lea ecx, [ebp - 0xe4]
call fcn.10022230
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xcc]
call fcn.10022230
add esi, edi
dec dword [ebp - 0x34]
jne 0x10051839
mov dword [ebp - 0x30], esi
push 3
pop edi
push edi
lea ecx, [ebp - 0xc0]
call fcn.100221ae
mov dword [ebp - 4], edi
mov dword [ebp - 0x20], 0xf5020f89
mov dword [ebp - 0x1c], 0x6d402da3
mov dword [ebp - 0x24], 0x334adc6f
mov dword [ebp - 0x34], ebx
jmp 0x10051b3f
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xc0]
mov dword [eax + ecx*4], 0x85f7
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10051b2c
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], ebx
jl 0x10051bcc
xor edi, edi
inc edi
mov dword [ebp - 0x1c], edi
lea ecx, [ebp - 0x118]
push edi
call fcn.100221ae
mov dword [ebp - 0x1c], 0xd17017a6
mov dword [ebp - 0x34], ebx
jmp 0x10051b7e
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x118]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10051b6e
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc0]
cmp dword [eax + ecx*4], ebx
je 0x10051ba1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc0]
cmp dword [eax + ecx*4], ebx
mov eax, edi
jne 0x10051ba3
mov eax, ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
neg eax
je 0x10051bb7
mov eax, edi
cmp dword [ebp - 0x24], ebx
jne 0x10051bb9
mov eax, ebx
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x118]
call fcn.10022230
dec dword [ebp - 0x20]
jns 0x10051b53
mov dword [ebp - 0x38], 0x4385
cmp dword [ebp - 0x38], 0x45f2
jle 0x10051c74
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], ebx
mov eax, ebx
mov dword [ebp - 0x24], 0x6cf
mov dword [ebp - 0x1c], eax
mov edi, esi
mov dword [ebp - 0x20], ebx
mov ecx, eax
mov esi, ebx
sar edi, cl
mov eax, edi
lea ecx, [ebp - 0x164]
and eax, esi
cdq
push edx
push eax
call fcn.1000a263
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10051c1b
mov eax, dword [eax]
push eax
call fcn.10058fef
pop ecx
xor eax, eax
lea ecx, [ebp - 0x164]
push ebx
inc eax
push eax
call fcn.100227ac
inc esi
cmp esi, 0x2318
jl 0x10051bff
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x34]
add eax, edi
dec dword [ebp - 0x24]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
jne 0x10051bf4
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0x255d
jl 0x10051be8
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x3f57
jl 0x10051be5
push ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [ebp - 0x30]
mov byte [ebp - 0xd], bl
cmp dword [ebp - 0x38], 0x42bf
jge 0x10051c8b
push 0x10008ba8
call fcn.10058fef
pop ecx
cmp byte [ebp - 0xd], 0
je 0x10051c9a
push ebx
push ebx
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc0]
call fcn.10022230
mov eax, dword [esi + 4]
xor ecx, ecx
mov edi, dword [esi]
inc ecx
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x30], 0xd686
mov dword [ebp - 0x1c], 0x55fd0a32
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x10051cdc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 0xf506e60b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10051cce
mov dword [ebp - 0x14], ebx
jmp 0x10051cf4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7c], 0x6923607a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10051ce6
mov eax, dword [ebp - 0x48]
mov ecx, 0xa9683648
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x48]
cmp ecx, eax
sbb eax, eax
xor ecx, ecx
neg eax
imul edx, eax, 0xab44
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x48]
cmp edx, eax
setle cl
cmp ecx, 0x69393dda
jg 0x10051d2b
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
cmp ecx, eax
lea ecx, [ebp - 0x100]
sete dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
xor eax, eax
inc eax
push eax
call fcn.100221ae
xor edx, edx
mov dword [ebp - 0x34], ebx
inc edx
jmp 0x10051d71
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x100]
mov dword [eax + ecx*4], 0x2937a3a1
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edx
jl 0x10051d5e
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0xfffffffa
jmp 0x10051d93
cmp byte [ebp - 0xd], 0
je 0x10051d90
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xfffffff3
mov byte [ebp - 0xd], bl
jl 0x10051d82
cmp byte [ebp - 0xd], 0
je 0x10051dab
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x100]
call fcn.10022230
cmp dword [ebp - 0x24], 0
jne 0x10051e96
cmp byte [ebp - 0x41], 0
je 0x10051ddb
xor eax, eax
inc eax
cmp dword [ebp - 0x40], eax
jne 0x10051ddb
mov ecx, dword [ebp + 8]
lea eax, [edi + 0x10]
add dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xc]
add esi, 0x10
push edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], esi
call fcn.10054463
pop ecx
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x5c]
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x9c], ebx
push eax
push edi
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
call fcn.10052b74
mov ecx, ebx
test edi, edi
jle 0x10051e72
mov eax, ecx
and eax, 0x80000001
jns 0x10051e2a
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x1c]
add eax, ecx
add eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x24]
cdq
idiv edi
mov eax, dword [ebp - 0x5c]
cmp word [eax + edx*2], bx
je 0x10051e5a
mov esi, eax
lea eax, [edx + 1]
cdq
idiv edi
cmp word [esi + edx*2], bx
jne 0x10051e48
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x5c]
xor ebx, ebx
inc ebx
mov word [eax + edx*2], bx
mov al, byte [edx + esi]
mov edx, dword [ebp - 0x40]
push 0
pop ebx
mov byte [ecx + edx], al
inc ecx
cmp ecx, edi
jl 0x10051e1c
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [esi], edi
test eax, eax
je 0x10051e99
push eax
call fcn.10059157
pop ecx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
jmp 0x10051e99
mov esi, dword [ebp + 8]
mov dword [ebp - 0x2c], ebx
push 3
mov dword [ebp + 8], 0xffffffff
mov dword [ebp + 8], ebx
pop ecx
jmp 0x10051ebc
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x140], 0xa6847dfa
inc dword [ebp + 8]
cmp dword [ebp + 8], ecx
jl 0x10051eab
push 2
mov dword [ebp - 0x2c], ebx
pop edi
jmp 0x10051ee7
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x10051ee4
push ebx
push 0x130d
push ebx
push 0x248e
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jle 0x10051ec9
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x2c], ebx
jl 0x10051eff
xor eax, eax
inc eax
mov dword [ebp + 8], eax
dec dword [ebp - 0x2c]
jns 0x10051ef7
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret