Function at 0x472840
Capabilities:
Extract resource via kernel32 functions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5a0bae
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc8
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x94], ebp
call fcn.0058d5de
mov eax, dword [eax + 8]
xor edi, edi
push 0x1020
push edi
push edi
push edi
push 0x87
push eax
call dword [sym.imp.USER32.dll_LoadImageA]
mov ecx, dword [ebp + 0x9d08]
push 0x4df
mov esi, eax
call fcn.00574f0d
mov ebx, eax
push esi
push edi
push 0x172
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x9c], ebx
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp + 0x8520]
mov edx, dword [ebp + 0x8524]
mov dword [0x60c1c8], ecx
mov dword [0x60c1cc], edx
mov eax, dword [ebp + 0x8538]
mov ecx, dword [ebp + 0x853c]
push esi
mov dword [0x60c1d0], eax
mov dword [0x60c1d4], ecx
call fcn.00579967
lea edx, [esp + 0x54]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 4]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], 0x5bf6bc
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0xe0], edi
push ecx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.00578d6f
mov esi, eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x7c], esi
call fcn.00578ccd
mov ebx, 1
cmp esi, edi
mov byte [esp + 0xe0], bl
jne 0x472948
xor eax, eax
jmp 0x47294b
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x70]
call fcn.00578d84
mov edx, dword [esi]
lea eax, [esp + 0xc8]
push eax
mov ecx, esi
call dword [edx + 0x50]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov eax, dword [esi + 4]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x2c]
call fcn.0057997c
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x28]
neg eax
sbb eax, eax
and eax, ecx
mov ecx, dword [esp + 0x70]
push eax
push ecx
call fcn.00578ec5
push edi
lea edx, [esp + 0xb0]
push edi
push edx
lea ecx, [esp + 0x78]
mov dword [esp + 0xa4], eax
call fcn.00579200
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
cdq
sub eax, edx
mov esi, eax
mov eax, ecx
cdq
sub eax, edx
sar esi, 1
sar eax, 1
cmp esi, eax
mov dword [esp + 0x14], esi
jl 0x4729de
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x60]
imul esi, ecx
push esi
mov dword [esp + 0x54], esi
call fcn.0057110b
mov ecx, dword [esp + 0x50]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x60]
mov edx, dword [ecx + 4]
push edi
push eax
push edx
mov dword [esp + 0x24], edi
call dword [sym.imp.GDI32.dll_GetBitmapBits]
mov ecx, dword [esp + 0x5c]
mov eax, ebx
cmp ecx, ebx
jle 0x472a4a
jmp 0x472a1c
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
mov esi, edi
mov edi, eax
mov edx, dword [esp + 0x18]
imul edi, ecx
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
inc eax
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [esp + 0x5c]
jl 0x472a18
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
push edi
push esi
push eax
call dword [sym.imp.GDI32.dll_SetBitmapBits]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
push 0xa
push str.5000
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push edi
push esi
mov dword [esp + 0x88], eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
fld qword [ebp + 0x8520]
fmul qword [0x5c53e8]
fmul qword [0x60c1d8]
fstp qword [esp + 0xac]
fld qword [ebp + 0x8538]
fmul qword [0x5c53e8]
fmul qword [0x60c1d8]
fst qword [esp + 0x3c]
fcomp qword [0x5bb338]
fnstsw ax
test ah, 0x40
je 0x472ad4
mov dword [esp + 0x3c], 0x47ae147b
mov dword [esp + 0x40], 0x3f847ae1
mov eax, dword [esp + 0x58]
xor ebp, ebp
test eax, eax
jle 0x472e2c
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
neg ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x88], ecx
xor ebx, ebx
test edi, edi
jle 0x472e16
mov edx, dword [esp + 0x14]
mov eax, ebp
sub eax, edx
mov edx, dword [esp + 0x30]
sub edx, ecx
mov ecx, eax
fild dword [esp + 0x14]
imul ecx, eax
fstp qword [esp + 0xbc]
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], ecx
jmp 0x472b36
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x14]
mov eax, ebx
sub eax, edx
mov edx, eax
mov dword [esp + 0x1c], eax
imul edx, eax
add edx, ecx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fsqrt
fdiv qword [esp + 0xbc]
fcom qword [0x5bbad8]
fnstsw ax
test ah, 1
je 0x472e04
fmul qword [0x60c1d8]
fstp qword [esp + 0xb4]
fild dword [esp + 0x84]
fild dword [esp + 0x1c]
fpatan
fstp qword [esp + 0x1c]
fld qword [esp + 0x3c]
fcos
fstp qword [esp + 0x44]
fld qword [esp + 0x1c]
fsin
fmul qword [esp + 0x44]
call fcn.00558af0
fst qword [esp + 0x9c]
fsin
fstp qword [esp + 0xa4]
fld qword [esp + 0x1c]
fcos
fdiv qword [esp + 0xa4]
call fcn.00558af0
fstp qword [esp + 0x34]
fld qword [esp + 0x1c]
fcomp qword [0x5bb338]
fnstsw ax
test ah, 1
je 0x472be3
fld qword [esp + 0x34]
fchs
fstp qword [esp + 0x34]
fld qword [esp + 0x34]
fcos
fmul qword [esp + 0x44]
call fcn.00558af0
fsub qword [esp + 0xb4]
fst qword [esp + 0x44]
fsin
fmul qword [esp + 0xa4]
call fcn.00559000
fld qword [esp + 0x44]
fptan
fstp st(0)
fld qword [esp + 0x9c]
fcos
fmulp st(1)
fld1
fpatan
fld qword [esp + 0x44]
fld qword [0x60c1d8]
fmul qword [0x5baea0]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x472c60
fld qword [esp + 0x1c]
fcomp qword [0x5bb338]
fxch st(1)
fnstsw ax
test ah, 1
je 0x472c58
fsub qword [0x60c1d8]
jmp 0x472c5e
fadd qword [0x60c1d8]
fxch st(1)
fld qword [0x60c1d8]
fmul qword [0x5c0e10]
fxch st(1)
fcompp
fnstsw ax
test ah, 1
je 0x472c96
fld qword [esp + 0x1c]
fcomp qword [0x5bb338]
fnstsw ax
test ah, 1
je 0x472c90
fadd qword [0x60c1d8]
jmp 0x472c96
fsub qword [0x60c1d8]
fsub qword [esp + 0x34]
fadd qword [esp + 0xac]
fdiv qword [0x60c1d8]
fmul qword [0x5bff28]
fadd qword [0x5c53e0]
call fcn.00556a00
mov esi, eax
cmp esi, 0x280
jl 0x472cda
mov eax, 0xcccccccd
mul esi
shr edx, 9
mov eax, edx
neg eax
shl eax, 2
sub eax, edx
shl eax, 7
add esi, eax
test esi, esi
jge 0x472cf7
mov ecx, 0x27f
mov eax, 0xcccccccd
sub ecx, esi
mul ecx
shr edx, 9
lea edx, [edx + edx*4]
shl edx, 7
add esi, edx
fld qword [esp + 0x3c]
fcomp qword [0x5bb338]
fdiv qword [0x60c1d8]
fnstsw ax
fmul qword [0x5c53d8]
test ah, 0x41
jne 0x472d1c
fadd qword [0x5c53d0]
jmp 0x472d22
fsubr qword [0x5c53d0]
call fcn.00556a00
mov ecx, eax
cmp ecx, 0x190
jl 0x472d4c
mov eax, 0x51eb851f
mul ecx
shr edx, 7
mov eax, edx
neg eax
shl eax, 2
sub eax, edx
lea eax, [eax + eax*4]
shl eax, 4
add ecx, eax
test ecx, ecx
jge 0x472d6c
mov edx, 0x18f
mov eax, 0x51eb851f
sub edx, ecx
mul edx
shr edx, 7
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
shl eax, 4
add ecx, eax
fld qword [esp + 0x3c]
fcomp qword [0x5bb338]
fnstsw ax
test ah, 0x41
jne 0x472d81
mov edi, ebx
jmp 0x472d83
sub edi, ebx
mov eax, esi
lea ecx, [ecx + ecx*4]
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x80]
shl ecx, 4
add edx, ecx
mov ecx, esi
sar eax, 3
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x472dac
dec ecx
or ecx, 0xfffffff8
inc ecx
mov dword [esp + 0x1c], eax
mov eax, 0x80
sar eax, cl
mov ecx, dword [esp + 0x1c]
test byte [ecx + edx], al
je 0x472dce
mov edx, dword [esp + 0x70]
push 0xc86040
push edi
push ebp
push edx
jmp 0x472dda
mov eax, dword [esp + 0x70]
push 0x40a0
push edi
push ebp
push eax
call dword [sym.imp.GDI32.dll_SetPixelV]
mov eax, dword [esp + 0x14]
cmp ebp, eax
jne 0x472dfe
cmp ebx, eax
jne 0x472dfe
mov ecx, dword [esp + 0x70]
push 0xfafa
push ebx
push ebp
push ecx
call dword [sym.imp.GDI32.dll_SetPixelV]
mov edi, dword [esp + 0x5c]
jmp 0x472e06
fstp st(0)
inc ebx
cmp ebx, edi
jl 0x472b2f
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x58]
inc ebp
dec edx
cmp ebp, eax
mov dword [esp + 0x30], edx
jl 0x472af7
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
push esi
push edi
push edx
call dword [sym.imp.GDI32.dll_GetBitmapBits]
mov eax, dword [esp + 0x4c]
push esi
push edi
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.GDI32.dll_SetBitmapBits]
push esi
call fcn.00571134
mov eax, dword [esp + 0x9c]
add esp, 4
test eax, eax
je 0x472e68
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x70]
push eax
push edx
call fcn.00578ec5
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x90]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x1c]
push ecx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx + 0x9d08]
call fcn.0043db90
lea ecx, [esp + 0x6c]
mov byte [esp + 0xe0], 0
call fcn.00578e02
mov dword [esp + 0x28], 0x5cf854
lea ecx, [esp + 0x28]
mov dword [esp + 0xe0], 2
call fcn.005799d3
mov ecx, dword [esp + 0xd8]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret