Function at 0x4702f6
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x76e440]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
test eax, eax
je 0x4707d7
xor ecx, ecx
cmp dword [eax + 4], ecx
je 0x4707d7
cmp dword [edi + 0xc], ecx
jne 0x4707d7
mov ebx, dword [edi + 0x18]
mov esi, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x10], ecx
cmp dword [ebx - 0xc], ecx
je 0x4703c2
test ebx, ebx
je 0x470376
push ebx
call fcn.005f2a00
pop ecx
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jle 0x470360
xor esi, esi
jmp 0x470376
lea eax, [esi + esi]
call fcn.005f2ce0
mov eax, esp
push 3
push esi
push ebx
push eax
call fcn.004533b8
mov esi, eax
push 0x470c9f
mov ecx, 0x77914c
call fcn.0045743e
mov ebx, eax
test ebx, ebx
je 0x4707f2
push 0
push 0
mov ecx, ebx
call fcn.00471f4b
mov eax, dword [ebx + 0x14]
lea edx, [ebp - 0x20]
push edx
push 1
push SysReAllocStringLen
mov ecx, dword [eax]
push 0
push esi
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jns 0x470553
mov eax, esi
jmp 0x4707dc
cmp dword [edi + 0x10], ecx
je 0x4704fb
movzx esi, word [edi + 0x10]
call fcn.00455aba
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x4703e3
mov eax, str.image
push eax
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
mov dword [ebp - 0x2c], eax
neg esi
sbb esi, esi
and esi, 0x7fffbffb
add esi, 0x80004005
js 0x470553
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x7fffbffb
add esi, 0x80004005
js 0x470553
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
mov dword [ebp - 0x28], eax
neg esi
sbb esi, esi
and esi, 0x7fffbffb
add esi, 0x80004005
js 0x470553
push dword [ebp - 0x2c]
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
mov esi, ebx
neg esi
sbb esi, esi
and esi, 0x7fffbffb
add esi, 0x80004005
js 0x470553
push 0x470c9f
mov ecx, 0x77914c
call fcn.0045743e
mov esi, eax
test esi, esi
je 0x4707f2
push 0
push 0
mov ecx, esi
call fcn.00471f4b
mov eax, dword [esi + 0x14]
lea edx, [ebp - 0x18]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov esi, eax
test esi, esi
js 0x470553
mov eax, dword [ebp - 0x18]
push ebx
push dword [ebp - 0x28]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
mov esi, eax
test esi, esi
js 0x470553
push 0x470c9f
mov ecx, 0x77914c
call fcn.0045743e
mov esi, eax
test esi, esi
je 0x4707f2
push 0
push 0
mov ecx, esi
call fcn.00471f4b
mov eax, dword [esi + 0x14]
lea edx, [ebp - 0x20]
push edx
push 1
push 0
push dword [ebp - 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
mov esi, eax
jmp 0x470553
cmp dword [edi + 0x24], ecx
je 0x470553
push 0x470c9f
mov ecx, 0x77914c
call fcn.0045743e
mov esi, eax
test esi, esi
je 0x4707f2
push 0
push 0
mov ecx, esi
call fcn.00471f4b
mov eax, dword [esi + 0x14]
lea edx, [ebp - 0x10]
push edx
push 0
push 0
push dword [edi + 0x24]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x54]
mov esi, eax
test esi, esi
js 0x470553
mov eax, dword [ebp + 8]
lea edx, [edi + 0xc]
push edx
push 0
push dword [ebp - 0x10]
mov eax, dword [eax + 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
cmp dword [edi + 0xc], 0
jne 0x47073e
test esi, esi
js 0x4705b3
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x47057c
mov eax, dword [ecx]
lea edx, [ebp - 0x1c]
push edx
push 0
push ecx
call dword [eax + 0x34]
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
test esi, esi
js 0x4705b3
push 0x470c9f
mov ecx, 0x77914c
call fcn.0045743e
mov esi, eax
test esi, esi
je 0x4707f2
push 0
push 0
mov ecx, esi
call fcn.00471f4b
mov eax, dword [esi + 0x14]
lea edx, [ebp - 0x14]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov esi, eax
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi + 0x20]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x4705ed
test ebx, ebx
jne 0x4705ed
test esi, esi
js 0x47073e
mov ecx, dword [ebp - 0x14]
fldz
push 1
push ecx
mov eax, dword [ecx]
push ecx
fstp qword [esp]
push ebx
push ebx
push 0x707604
push dword [ebp - 0x10]
push ecx
call dword [eax + 0x20]
jmp 0x470721
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x2c]
push edx
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
mov esi, eax
test esi, esi
js 0x47073e
mov esi, dword [ebp - 0xc]
test esi, esi
jne 0x470661
mov dword [ebp - 8], ebx
fild dword [ebp - 8]
test ebx, ebx
jns 0x47061f
fadd dword [0x6ced48]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
fild dword [ebp - 0x2c]
test eax, eax
jns 0x470635
fadd dword [0x6ced48]
fstp dword [ebp - 0xc]
fdiv dword [ebp - 0xc]
mov eax, dword [ebp - 0x28]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fild dword [ebp - 0x28]
test eax, eax
jns 0x470651
fadd dword [0x6ced48]
fstp dword [ebp - 0xc]
fmul dword [ebp - 0xc]
call fcn.005f65c6
mov dword [ebp - 0xc], eax
jmp 0x4706b4
test ebx, ebx
jne 0x4706b4
mov dword [ebp - 8], esi
fild dword [ebp - 8]
test esi, esi
jns 0x470675
fadd dword [0x6ced48]
fstp dword [ebp - 8]
fld dword [ebp - 8]
mov eax, dword [ebp - 0x28]
fild dword [ebp - 0x28]
test eax, eax
jns 0x47068b
fadd dword [0x6ced48]
fstp dword [ebp - 8]
fdiv dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
fstp dword [ebp - 8]
fld dword [ebp - 8]
fild dword [ebp - 0x2c]
test eax, eax
jns 0x4706a7
fadd dword [0x6ced48]
fstp dword [ebp - 8]
fmul dword [ebp - 8]
call fcn.005f65c6
mov ebx, eax
push 0x470c9f
mov ecx, 0x77914c
call fcn.0045743e
mov esi, eax
test esi, esi
je 0x4707f2
push 0
push 0
mov ecx, esi
call fcn.00471f4b
mov eax, dword [esi + 0x14]
lea edx, [ebp - 0x24]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov esi, eax
test esi, esi
js 0x47073e
mov eax, dword [ebp - 0x24]
push 2
push ebx
push dword [ebp - 0xc]
mov ecx, dword [eax]
push dword [ebp - 0x10]
push eax
call dword [ecx + 0x20]
mov esi, eax
test esi, esi
js 0x47073e
mov eax, dword [ebp - 0x14]
fldz
push 1
mov ecx, dword [eax]
push ecx
push ecx
fstp qword [esp]
push 0
push 0
push 0x707604
push dword [ebp - 0x24]
push eax
call dword [ecx + 0x20]
mov esi, eax
test esi, esi
js 0x47073e
mov eax, dword [ebp + 8]
lea edx, [edi + 0xc]
push edx
push 0
push dword [ebp - 0x14]
mov eax, dword [eax + 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
neg eax
sbb eax, eax
and dword [ebp - 0x10], eax
test ecx, ecx
je 0x47075c
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x20], 0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x47076d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x47077e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x47078f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x4707a0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x4707b1
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x10], 0
cmp dword [edi + 0x28], 0
je 0x4703bb
cmp dword [edi + 0x24], 0
je 0x4703bb
push dword [edi + 0x24]
call dword [sym.imp.GDI32.dll_DeleteObject]
and dword [edi + 0x24], 0
jmp 0x4703bb
mov eax, 0x80004005
lea esp, [ebp - 0x38]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005ed4e7
mov esp, ebp
pop ebp
ret 4
call fcn.004528f4
int3