Function at 0x1001d656
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
push ebx
push esi
push edi
mov edi, edx
mov dword [ebp - 0x1c], edi
cmp byte [edi], 0x50
jne 0x1001ddc1
cmp byte [edi + 1], 0x4b
jne 0x1001ddc1
mov al, byte [edi + 2]
lea ecx, [ebp - 0x6c]
push 2
xor esi, esi
mov byte [ebp - 0x15], al
mov dword [ebp - 4], 0xfff8
inc esi
pop eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], 0xfffffffe
mov dword [ebp - 0x14], eax
push eax
call fcn.10001dc8
mov dword [ebp - 0x10], esi
xor ebx, ebx
mov dword [ebp - 0x10], 7
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x10], 0xfffffff8
mov dword [ebp - 0x10], 0xfffffff9
mov dword [ebp - 4], ebx
jmp 0x1001d6d5
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 0x7d437f1b
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x1001d6c5
push 3
pop ecx
push 0xffffffffffffffff
mov dword [ebp - 4], ebx
pop edx
jmp 0x1001d6f3
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x98], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001d6e6
mov dword [ebp - 4], ebx
jmp 0x1001d70b
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x54], 0xdeb94592
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x1001d6fd
mov dword [ebp - 4], ebx
jmp 0x1001d726
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xac], 0xff2b
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001d715
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 0xfffffff7
jae 0x1001d764
mov eax, dword [ebp - 4]
neg eax
jne 0x1001d743
cmp dword [ebp - 4], ebx
jne 0x1001d743
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp dword [ebp - 4], ebx
jne 0x1001d755
cmp dword [ebp - 8], ebx
je 0x1001d759
cmp dword [ebp - 4], ebx
je 0x1001d759
mov ecx, esi
jmp 0x1001d75b
mov ecx, ebx
mov eax, dword [ebp - 4]
mov edx, ebx
add eax, ecx
je 0x1001d766
mov edx, esi
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0xa8f1
setge al
imul eax, eax, 9
add eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
jne 0x1001d78d
mov eax, ebx
cmp dword [ebp - 8], ebx
je 0x1001d78f
mov eax, esi
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 8]
sub ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x6c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
or eax, 0xffffffff
cmp eax, ecx
mov eax, dword [ebp - 8]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov ecx, dword [ebp - 8]
setge dl
add ecx, edx
xor edx, edx
mov dword [ebp - 0x98], ecx
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 8]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 8]
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x98], esi
call fcn.10001e25
mov bl, byte [edi + 3]
lea ecx, [ebp - 0x88]
push 2
call fcn.10001dc8
mov dword [ebp - 0xc], 0x9bdba76a
xor edx, edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], edx
jmp 0x1001d821
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001d812
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0xc], edx
jl 0x1001d83b
mov dword [ebp - 0x14], 0xfffffffe
dec dword [ebp - 0xc]
jns 0x1001d82f
lea ecx, [ebp - 0x88]
call fcn.10001e25
movzx esi, byte [ebp - 0x15]
xor ecx, ecx
add esi, 4
mov dword [ebp - 0x20], ecx
add edi, esi
mov dword [ebp - 0x24], 0xfffffff6
xor edx, edx
add esi, 0x18
inc edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], ecx
jmp 0x1001d884
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa0], 0x3fde
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001d873
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
sub eax, 0xfffffff8
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], ecx
jl 0x1001d8b0
cmp dword [ebp - 0x24], ecx
jne 0x1001d8b0
dec dword [ebp - 0xc]
jns 0x1001d8a6
mov ecx, dword [edi + 0x14]
mov edx, dword [edi]
movzx eax, bl
add esi, eax
call fcn.1001d64a
mov dword [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 8], 0xfffffffc
inc ecx
mov dword [ebp - 0xc], 0x45c17473
xor ebx, ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 8], ebx
jmp 0x1001d8f2
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x44], 0x7b332e0c
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1001d8e4
mov eax, dword [ebp - 4]
sub eax, 0xa
mov dword [ebp - 8], eax
je 0x1001d991
cmp dword [ebp - 4], ebx
je 0x1001d90e
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp dword [ebp - 8], ebx
jne 0x1001d92c
cmp dword [ebp - 4], ebx
jne 0x1001d92c
mov ecx, ebx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmp ecx, eax
setne dl
sub edx, dword [ebp - 4]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
add edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
cmp eax, edx
mov eax, dword [ebp - 4]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 8]
setg cl
sub eax, ecx
mov ecx, 0xcbd6cd53
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 4]
jl 0x1001d982
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 8], ebx
je 0x1001d991
cmp dword [ebp - 0xc], ebx
je 0x1001d991
xor ecx, ecx
inc ecx
jmp 0x1001d993
mov ecx, ebx
mov eax, dword [ebp - 4]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 4]
cmp edx, eax
sete cl
mov dword [ebp - 8], ecx
mov dword [ebp - 8], ebx
jmp 0x1001d9b8
mov dword [ebp - 0x44], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x10
je 0x1001d9b2
mov ebx, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [ebp - 8], 0xfffffffb
inc ecx
lea eax, [esi + ebx]
mov dword [ebp - 0x20], eax
or eax, 0xffffffff
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0xcf415d72
mov dword [ebp - 0x10], 0x66d210ec
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], 0xc946b43d
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], 0xab551fa4
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 0xfffffffa
jle 0x1001dab8
or ebx, eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0xa6b42be1
mov dword [ebp - 4], 0
jmp 0x1001da44
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xbc], 0xb963ab19
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1001da33
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0xa
jl 0x1001daa8
mov dword [ebp - 0x10], 0x2121f90e
mov dword [ebp - 4], ebx
mov dword [ebp - 4], 0
jmp 0x1001da7b
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x8c], 0
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001da6a
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
cmp ecx, eax
push 1
setg dl
add edx, dword [ebp - 0x14]
mov dword [ebp - 4], edx
dec dword [ebp - 0x14]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xa
pop ecx
jge 0x1001da57
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffffa
jg 0x1001da15
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x24]
mov dword [eax], esi
mov eax, dword [edi]
mov dword [ebp - 0x7c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x78], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x74], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x70], eax
mov dword [ebp - 8], 0x4e2db58
shr esi, 2
mov dword [ebp - 0x1c], 0x173948b0
inc esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], esi
mov dword [ebp - 8], 0
jmp 0x1001db80
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x60]
push 2
call fcn.10001dc8
xor edx, edx
mov dword [ebp - 0xc], edx
jmp 0x1001db1c
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x60]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x1001db0f
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x10], edx
jne 0x1001db5a
mov dword [ebp - 0x10], 4
mov byte [ebp - 0x15], dl
cmp byte [ebp - 0x15], dl
je 0x1001db41
push edx
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x60]
setl dl
mov dword [eax], edx
xor edx, edx
jmp 0x1001db6d
mov dword [ebp - 0x10], 0xfffffff7
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x60]
cmp dword [ebp - 0x14], edx
jne 0x1001db8c
call fcn.10001e25
dec dword [ebp - 8]
push 1
pop ecx
cmp dword [ebp - 8], 0xfffffffe
je 0x1001dafb
jmp 0x1001db91
call fcn.10001e25
xor edi, edi
test esi, esi
je 0x1001ddc6
sub ebx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ebx
push 3
lea ecx, [ebp - 0x50]
call fcn.10001dc8
push 2
pop edx
mov dword [ebp - 0x3c], edx
or eax, 0xffffffff
mov dword [ebp - 0x38], edx
xor ecx, ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
jmp 0x1001dbd5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x2c], 0xfffffffd
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jl 0x1001dbc7
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 3
jge 0x1001dbfb
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 0x6bc3ec3d
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x1001dbe3
xor ecx, ecx
mov dword [ebp - 0x28], 3
cmp dword [ebp - 0x28], 0xffffffee
jge 0x1001dce5
mov dword [ebp - 8], 8
mov dword [ebp - 0xc], ecx
jmp 0x1001dc26
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x40], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x1001dc18
mov eax, dword [ebp - 8]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 8], ecx
je 0x1001dc61
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], 0
je 0x1001dcd2
push 0x1fd0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
xor ecx, ecx
jmp 0x1001dcd2
mov dword [ebp - 4], 1
xor ecx, ecx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
inc dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 4]
cmp eax, 0x2002
setge cl
xor eax, eax
cmp edx, ecx
setg al
xor edx, edx
cmp eax, dword [esi + 4]
mov eax, dword [ebp - 4]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
add ecx, dword [ebp - 0x28]
mov dword [esi + 4], ecx
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], ecx
jl 0x1001dcd2
cmp dword [ebp - 0x28], ecx
jne 0x1001dcd2
dec dword [ebp - 8]
jns 0x1001dcc8
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffee
jl 0x1001dc0c
mov esi, dword [ebp - 0x24]
push 2
pop edx
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], edx
jg 0x1001dd8f
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x14], 0xe5de2cae
xor edx, edx
mov dword [ebp - 0x10], 4
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x38], 0xfff7
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 4]
setge dl
xor ecx, ecx
imul edx, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x38]
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, 1
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
mov eax, dword [ebp - 0x50]
setle dl
mov dword [eax + esi*4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x38], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp + eax*4 - 0x38]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x50]
sub edx, dword [ebx + 4]
mov dword [eax + ecx*4], edx
mov dword [ebp - 0x10], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jle 0x1001dcf4
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
lea ecx, [ebp - 0x50]
call fcn.10001e25
mov eax, dword [ebp - 0x20]
mov edx, edi
and edx, 3
mov ecx, dword [eax]
mov edx, dword [ebp + edx*4 - 0x7c]
call fcn.1001d64a
mov ecx, dword [ebp - 0x20]
mov dword [ebx + ecx], eax
add ecx, 4
inc edi
mov dword [ebp - 0x20], ecx
cmp edi, esi
jb 0x1001dba1
jmp 0x1001ddc6
mov eax, dword [ebp + 8]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret