Function at 0x47e850
Capabilities:
Extract resource via kernel32 functions
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x60908a
mov eax, dword fs:[0]
push eax
sub esp, 0xd5c
mov eax, dword [0x67e4d0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xffffffffffffffff
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x7a0]
call fcn.00467140
mov dword [ebp - 4], 0
push 4
lea ecx, [ebp - 0x92c]
push ecx
lea ecx, [ebp - 0x7a0]
call fcn.00469360
mov dword [ebp - 0xcbc], eax
mov edx, dword [ebp - 0xcbc]
mov dword [ebp - 0xca0], edx
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0xca0]
call fcn.00467940
push eax
push 0x62098c
call fcn.005a780d
add esp, 8
test eax, eax
jne 0x47e8e7
mov dword [ebp - 0xc44], 1
jmp 0x47e8f1
mov dword [ebp - 0xc44], 0
mov al, byte [ebp - 0xc44]
mov byte [ebp - 0xbed], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x92c]
call fcn.00467590
movzx ecx, byte [ebp - 0xbed]
test ecx, ecx
je 0x47eafe
xor edx, edx
mov dword [ebp - 0x18], edx
mov word [ebp - 0x14], dx
push 0x200
push 0
lea eax, [ebp - 0x418]
push eax
call fcn.0058a9f0
add esp, 0xc
push 0x200
push 0
lea ecx, [ebp - 0x618]
push ecx
call fcn.0058a9f0
add esp, 0xc
push 0x200
push 0
lea edx, [ebp - 0x218]
push edx
call fcn.0058a9f0
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x618]
push ecx
lea edx, [ebp - 0x418]
push edx
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00471d50
add esp, 0x14
push 0x62098c
lea edx, [ebp - 0x218]
push edx
call fcn.005a780d
add esp, 8
test eax, eax
jne 0x47eafe
lea ecx, [ebp - 0x824]
call fcn.00467180
mov byte [ebp - 4], 2
push 0x65398c
lea eax, [ebp - 0x18]
push eax
call fcn.005ba5f6
add esp, 8
test eax, eax
jne 0x47e9dc
call fcn.0045caf0
push eax
lea ecx, [ebp - 0x824]
call fcn.00467710
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x824]
call fcn.00467cb0
push 0x50
push 0
push 0
push 1
lea ecx, [ebp - 0x824]
call fcn.00468660
push eax
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0xc2c], eax
cmp dword [ebp - 0xc2c], 0
je 0x47eaef
push 0x98
call fcn.00437c40
add esp, 4
mov dword [ebp - 0xc24], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0xc24], 0
je 0x47ea4d
mov ecx, dword [ebp - 0xc24]
call fcn.0045a240
mov dword [ebp - 0xc28], eax
jmp 0x47ea57
mov dword [ebp - 0xc28], 0
mov edx, dword [ebp - 0xc28]
mov dword [ebp - 0xc9c], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xc9c]
mov dword [ebp - 0xbf4], eax
mov ecx, dword [ebp - 0xbf4]
add ecx, 8
push ecx
mov edx, dword [ebp - 0xbf4]
add edx, 4
push edx
mov eax, dword [ebp - 0xc2c]
push eax
call fcn.00473860
add esp, 0xc
mov ecx, dword [ebp - 0xbf4]
mov dword [ecx], eax
mov edx, dword [ebp - 0xbf4]
mov byte [edx + 0xc], 1
mov eax, dword [ebp - 0xbf4]
mov ecx, dword [ebp + 0x18]
mov dword [eax + 0x94], ecx
mov edx, dword [ebp - 0xbf4]
mov dword [ebp - 0xcb0], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.00467590
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xcb0]
jmp 0x47fb9f
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.00467590
mov dword [ebp - 0xbd4], 0
mov dword [ebp - 0xbd0], 0
cmp dword [ebp + 0x14], 0
jne 0x47ee6f
call fcn.0045caf0
push eax
lea ecx, [ebp - 0x71c]
call fcn.00467100
mov byte [ebp - 4], 4
call fcn.0045cb10
mov ecx, eax
call fcn.00468a10
movzx eax, al
test eax, eax
je 0x47ec8a
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x71c]
call fcn.00467cb0
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
lea ecx, [ebp - 0x71c]
call fcn.00468660
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xbf8], eax
cmp dword [ebp - 0xbf8], 0xffffffff
jne 0x47eb9e
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
push 0
mov edx, dword [ebp - 0xbf8]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xbd0], eax
cmp dword [ebp - 0xbd0], 0
jne 0x47ebdd
mov eax, dword [ebp - 0xbf8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
mov dword [ebp - 0xc30], 0
push 0x687ae0
mov ecx, dword [ebp - 0xbd0]
push ecx
call fcn.00537115
add esp, 8
mov dword [ebp - 0xca4], eax
mov edx, dword [ebp - 0xca4]
mov dword [ebp - 0xbd4], edx
push 0
lea eax, [ebp - 0xc30]
push eax
mov ecx, dword [ebp - 0xbd0]
push ecx
mov edx, dword [ebp - 0xbd4]
push edx
mov eax, dword [ebp - 0xbf8]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 0xbf8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0xc30]
cmp edx, dword [ebp - 0xbd0]
je 0x47ec85
mov eax, dword [ebp - 0xbd4]
mov dword [ebp - 0xca8], eax
mov ecx, dword [ebp - 0xca8]
push ecx
call fcn.00536df8
add esp, 4
mov dword [ebp - 0xbd4], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
jmp 0x47ee5b
call fcn.0045cb10
push eax
lea ecx, [ebp - 0x71c]
call fcn.00467bf0
call fcn.0045ce30
movzx edx, al
test edx, edx
je 0x47ee12
call fcn.0045cb20
mov dword [ebp - 0xc18], eax
cmp dword [ebp - 0xc18], 0
jne 0x47ecd3
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x698]
call fcn.0040ec80
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xbc8]
push ecx
lea edx, [ebp - 0xcb4]
push edx
lea eax, [ebp - 0x698]
push eax
mov ecx, dword [ebp - 0xc18]
push ecx
call fcn.0048f8c0
add esp, 0x10
test eax, eax
jne 0x47ed1a
mov dword [ebp - 0xc34], 1
jmp 0x47ed24
mov dword [ebp - 0xc34], 0
mov dl, byte [ebp - 0xc34]
mov byte [ebp - 0xbee], dl
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x698]
call fcn.0040ebb0
movzx eax, byte [ebp - 0xbee]
test eax, eax
je 0x47ed5e
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
mov ecx, dword [ebp - 0x9b4]
mov dword [ebp - 0xbd0], ecx
cmp dword [ebp - 0xbd0], 0
jne 0x47ed87
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
push 0x687ae0
mov edx, dword [ebp - 0xbd0]
push edx
call fcn.00537115
add esp, 8
mov dword [ebp - 0xcac], eax
mov eax, dword [ebp - 0xcac]
mov dword [ebp - 0xbd4], eax
mov ecx, dword [ebp - 0xbd0]
push ecx
mov edx, dword [ebp - 0xbd4]
push edx
mov eax, dword [ebp - 0xcb4]
push eax
mov ecx, dword [ebp - 0xc18]
push ecx
call fcn.0048f590
add esp, 0x10
test eax, eax
jne 0x47ee10
mov edx, dword [ebp - 0xbd4]
mov dword [ebp - 0xcb8], edx
push 1
mov eax, dword [ebp - 0xcb8]
push eax
call fcn.00536dc0
add esp, 8
mov dword [ebp - 0xbd4], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
jmp 0x47ee5b
lea ecx, [ebp - 0xbd0]
push ecx
lea edx, [ebp - 0xbd4]
push edx
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x71c]
call fcn.00468660
push eax
call fcn.004a5730
add esp, 0x10
mov dword [ebp - 0xcc0], eax
cmp dword [ebp - 0xcc0], 0
jge 0x47ee5b
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef4e
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.00467590
jmp 0x47ef46
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.0045cac0
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0xbfc], eax
cmp dword [ebp - 0xbfc], 0
jne 0x47ee97
jmp 0x47ef4e
mov eax, dword [ebp - 0xbfc]
push eax
call fcn.0045cac0
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0xc38], eax
cmp dword [ebp - 0xc38], 0
jne 0x47eecb
mov ecx, dword [ebp - 0xbfc]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x47ef4e
mov edx, dword [ebp - 0xbfc]
push edx
call fcn.0045cac0
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0xbd0], eax
cmp dword [ebp - 0xbd0], 0
jne 0x47eeef
jmp 0x47ef4e
push 0x687ae0
mov eax, dword [ebp - 0xbd0]
push eax
call fcn.00537115
add esp, 8
mov dword [ebp - 0xcc4], eax
mov ecx, dword [ebp - 0xcc4]
mov dword [ebp - 0xbd4], ecx
mov edx, dword [ebp - 0xbd0]
push edx
mov eax, dword [ebp - 0xc38]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
mov ecx, dword [ebp - 0xbd4]
push ecx
call fcn.0058a470
add esp, 0xc
mov edx, dword [ebp - 0xbfc]
push edx
call dword [sym.imp.KERNEL32.dll_FreeResource]
xor eax, eax
jne 0x47eb12
cmp dword [ebp - 0xbd4], 0
jne 0x47f056
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xc00], eax
cmp dword [ebp - 0xc00], 0xffffffff
jne 0x47ef8b
jmp 0x47f056
push 0
mov edx, dword [ebp - 0xc00]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xbd0], eax
cmp dword [ebp - 0xbd0], 0
jne 0x47efbb
mov eax, dword [ebp - 0xc00]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x47f056
mov dword [ebp - 0xc3c], 0
push 0x687ae0
mov ecx, dword [ebp - 0xbd0]
push ecx
call fcn.00537115
add esp, 8
mov dword [ebp - 0xcc8], eax
mov edx, dword [ebp - 0xcc8]
mov dword [ebp - 0xbd4], edx
push 0
lea eax, [ebp - 0xc3c]
push eax
mov ecx, dword [ebp - 0xbd0]
push ecx
mov edx, dword [ebp - 0xbd4]
push edx
mov eax, dword [ebp - 0xc00]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 0xc00]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0xc3c]
cmp edx, dword [ebp - 0xbd0]
je 0x47f04f
mov eax, dword [ebp - 0xbd4]
mov dword [ebp - 0xccc], eax
mov ecx, dword [ebp - 0xccc]
push ecx
call fcn.00536df8
add esp, 4
mov dword [ebp - 0xbd4], 0
jmp 0x47f056
cmp dword [ebp - 0xbd4], 0
jne 0x47f086
mov dword [ebp - 0xcd0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xcd0]
jmp 0x47fb9f
mov dword [ebp - 0xbe0], 0
lea ecx, [ebp - 0xc14]
call fcn.0053b690
mov byte [ebp - 4], 6
mov byte [ebp - 0xbd5], 1
push 4
lea edx, [ebp - 0x9b0]
push edx
lea ecx, [ebp - 0x7a0]
call fcn.00469360
mov dword [ebp - 0xcd4], eax
mov eax, dword [ebp - 0xcd4]
mov dword [ebp - 0xcd8], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xcd8]
call fcn.00467940
push eax
push str..svg
call fcn.005a780d
add esp, 8
test eax, eax
jne 0x47f0f9
mov dword [ebp - 0xc40], 1
jmp 0x47f103
mov dword [ebp - 0xc40], 0
mov cl, byte [ebp - 0xc40]
mov byte [ebp - 0xbef], cl
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x9b0]
call fcn.00467590
movzx edx, byte [ebp - 0xbef]
test edx, edx
je 0x47f248
mov eax, dword [ebp - 0xbd0]
push eax
mov ecx, dword [ebp - 0xbd4]
push ecx
lea edx, [ebp - 0xc04]
push edx
call fcn.0053d310
add esp, 0xc
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xc04]
call fcn.00472b80
movzx eax, al
test eax, eax
je 0x47f237
push 0
lea ecx, [ebp - 0xc04]
call fcn.00472be0
mov ecx, eax
call fcn.0053d1a0
call fcn.00537580
push eax
mov ecx, dword [ebp + 0xc]
call fcn.0045be00
mov ecx, eax
call fcn.0046c3c0
push eax
lea ecx, [ebp - 0xc04]
call fcn.00472be0
mov ecx, eax
call fcn.0053ef40
call fcn.00537580
push eax
mov ecx, dword [ebp + 0xc]
call fcn.0045be00
mov ecx, eax
call fcn.0046c3c0
push eax
lea ecx, [ebp - 0xcf0]
push ecx
lea ecx, [ebp - 0xc04]
call fcn.00472be0
mov ecx, eax
call fcn.0053dd20
mov dword [ebp - 0xc74], eax
mov edx, dword [ebp - 0xc74]
push edx
lea ecx, [ebp - 0xc14]
call fcn.00472b20
lea ecx, [ebp - 0xcf0]
call fcn.00472880
lea ecx, [ebp - 0xc14]
call fcn.0053ef30
mov dword [ebp - 0xbe8], eax
lea ecx, [ebp - 0xc14]
call fcn.0053d190
mov dword [ebp - 0xbe4], eax
lea ecx, [ebp - 0xc14]
call fcn.00481490
lea ecx, [ebp - 0xc14]
call fcn.0053ce80
mov dword [ebp - 0xbe0], eax
mov byte [ebp - 0xbd5], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc04]
call fcn.004727d0
jmp 0x47f27b
push 4
lea eax, [ebp - 0xce8]
push eax
lea ecx, [ebp - 0xbe4]
push ecx
lea edx, [ebp - 0xbe8]
push edx
mov eax, dword [ebp - 0xbd0]
push eax
mov ecx, dword [ebp - 0xbd4]
push ecx
call fcn.004b5b30
add esp, 0x18
mov dword [ebp - 0xbe0], eax
mov edx, dword [ebp - 0xbd4]
mov dword [ebp - 0xc78], edx
mov eax, dword [ebp - 0xc78]
push eax
call fcn.00536df8
add esp, 4
cmp dword [ebp - 0xbe0], 0
jne 0x47f2d5
mov dword [ebp - 0xc7c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00472880
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xc7c]
jmp 0x47fb9f
push 0x2c
push 0
lea ecx, [ebp - 0x654]
push ecx
call fcn.0058a9f0
add esp, 0xc
mov dword [ebp - 0x654], 0x28
mov edx, dword [ebp - 0xbe8]
mov dword [ebp - 0x650], edx
mov eax, dword [ebp - 0xbe4]
neg eax
mov dword [ebp - 0x64c], eax
mov ecx, 1
mov word [ebp - 0x648], cx
mov edx, 0x20
mov word [ebp - 0x646], dx
mov dword [ebp - 0x644], 0
mov eax, dword [ebp - 0xbe8]
imul eax, dword [ebp - 0xbe4]
shl eax, 2
mov dword [ebp - 0x640], eax
mov byte [ebp - 0xbd6], 0
mov dword [ebp - 0xbdc], 0
push 0
push 0
lea ecx, [ebp - 0xbdc]
push ecx
push 0
lea edx, [ebp - 0x654]
push edx
push 0
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0xbec], eax
cmp dword [ebp - 0xbec], 0
jne 0x47f3b6
mov dword [ebp - 0xc80], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00472880
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xc80]
jmp 0x47fb9f
mov dword [ebp - 0xbcc], 0
jmp 0x47f3d1
mov eax, dword [ebp - 0xbcc]
add eax, 1
mov dword [ebp - 0xbcc], eax
mov ecx, dword [ebp - 0xbe8]
imul ecx, dword [ebp - 0xbe4]
cmp dword [ebp - 0xbcc], ecx
jge 0x47f5a9
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov ecx, dword [ebp - 0xbcc]
mov esi, dword [ebp - 0xbe0]
mov cl, byte [esi + ecx*4 + 3]
mov byte [eax + edx*4 + 3], cl
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
movzx ecx, byte [eax + edx*4 + 3]
cmp ecx, 0xff
jge 0x47f4e8
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbe0]
movzx eax, byte [eax + edx*4 + 2]
mov ecx, dword [ebp - 0xbcc]
mov edx, dword [ebp - 0xbe0]
movzx ecx, byte [edx + ecx*4 + 3]
imul eax, ecx
xor edx, edx
mov ecx, 0xff
div ecx
mov edx, dword [ebp - 0xbcc]
mov ecx, dword [ebp - 0xbdc]
mov byte [ecx + edx*4], al
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbe0]
movzx eax, byte [eax + edx*4 + 1]
mov ecx, dword [ebp - 0xbcc]
mov edx, dword [ebp - 0xbe0]
movzx ecx, byte [edx + ecx*4 + 3]
imul eax, ecx
xor edx, edx
mov ecx, 0xff
div ecx
mov edx, dword [ebp - 0xbcc]
mov ecx, dword [ebp - 0xbdc]
mov byte [ecx + edx*4 + 1], al
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbe0]
movzx eax, byte [eax + edx*4]
mov ecx, dword [ebp - 0xbcc]
mov edx, dword [ebp - 0xbe0]
movzx ecx, byte [edx + ecx*4 + 3]
imul eax, ecx
xor edx, edx
mov ecx, 0xff
div ecx
mov edx, dword [ebp - 0xbcc]
mov ecx, dword [ebp - 0xbdc]
mov byte [ecx + edx*4 + 2], al
mov byte [ebp - 0xbd6], 1
jmp 0x47f546
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov ecx, dword [ebp - 0xbcc]
mov esi, dword [ebp - 0xbe0]
mov cl, byte [esi + ecx*4 + 2]
mov byte [eax + edx*4], cl
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov ecx, dword [ebp - 0xbcc]
mov esi, dword [ebp - 0xbe0]
mov cl, byte [esi + ecx*4 + 1]
mov byte [eax + edx*4 + 1], cl
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov ecx, dword [ebp - 0xbcc]
mov esi, dword [ebp - 0xbe0]
mov cl, byte [esi + ecx*4]
mov byte [eax + edx*4 + 2], cl
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov ecx, dword [eax + edx*4]
cmp ecx, dword [ebp + 0x18]
jne 0x47f5a4
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov byte [eax + edx*4], 0
mov ecx, dword [ebp - 0xbcc]
mov edx, dword [ebp - 0xbdc]
mov byte [edx + ecx*4 + 1], 0
mov eax, dword [ebp - 0xbcc]
mov ecx, dword [ebp - 0xbdc]
mov byte [ecx + eax*4 + 2], 0
mov edx, dword [ebp - 0xbcc]
mov eax, dword [ebp - 0xbdc]
mov byte [eax + edx*4 + 3], 0
mov byte [ebp - 0xbd6], 1
jmp 0x47f3c2
movzx ecx, byte [ebp - 0xbd5]
test ecx, ecx
je 0x47f5c3
mov edx, dword [ebp - 0xbe0]
push edx
call fcn.004b5990
add esp, 4
mov dword [ebp - 0xc1c], 0x64
push 0
push 0x6209a4
lea ecx, [ebp - 0x7a0]
call fcn.00468200
mov dword [ebp - 0xc70], eax
cmp dword [ebp - 0xc70], 0xffffffff
je 0x47f639
push 0xffffffffffffffff
mov eax, dword [ebp - 0xc70]
add eax, 3
push eax
lea ecx, [ebp - 0x8a8]
push ecx
lea ecx, [ebp - 0x7a0]
call fcn.00468c20
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8a8]
call fcn.00467940
push eax
call fcn.005b7898
add esp, 4
mov dword [ebp - 0xc1c], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x8a8]
call fcn.00467590
mov ecx, dword [ebp + 0xc]
call fcn.0045be00
mov ecx, eax
call fcn.0046c1c0
mov dword [ebp - 0xc64], eax
mov edx, dword [ebp - 0xc1c]
cmp edx, dword [ebp - 0xc64]
je 0x47fad3
movzx eax, byte [ebp - 0xbd5]
test eax, eax
je 0x47fad3
mov ecx, dword [ebp + 0xc]
call fcn.0045be00
mov ecx, eax
call fcn.0046c1c0
mov dword [ebp - 0xc6c], eax
cvtsi2sd xmm0, dword [ebp - 0xc6c]
mov ecx, dword [ebp - 0xc6c]
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x620ab0]
movsd qword [ebp - 0xce4], xmm0
cvtsd2ss xmm0, qword [ebp - 0xce4]
cvtsi2ss xmm1, dword [ebp - 0xc1c]
divss xmm0, xmm1
movss dword [ebp - 0xc68], xmm0
cvtsi2ss xmm0, dword [ebp - 0xbe8]
mulss xmm0, dword [ebp - 0xc68]
movss dword [ebp - 0xc84], xmm0
cvtsi2ss xmm0, dword [ebp - 0xbe4]
mulss xmm0, dword [ebp - 0xc68]
movss dword [ebp - 0xc88], xmm0
push ecx
movss xmm0, dword [ebp - 0xc84]
movss dword [esp], xmm0
call fcn.00481470
add esp, 4
call fcn.00537580
mov dword [ebp - 0xbe8], eax
push ecx
movss xmm0, dword [ebp - 0xc88]
movss dword [esp], xmm0
call fcn.00481470
add esp, 4
call fcn.00537580
mov dword [ebp - 0xbe4], eax
cmp dword [ebp - 0xc64], 0xc8
jle 0x47f9f9
movzx edx, byte [ebp + 8]
test edx, edx
je 0x47f9f9
push 0x2c
push 0
lea eax, [ebp - 0x680]
push eax
call fcn.0058a9f0
add esp, 0xc
mov dword [ebp - 0x680], 0x28
mov ecx, dword [ebp - 0xbe8]
mov dword [ebp - 0x67c], ecx
mov edx, dword [ebp - 0xbe4]
mov dword [ebp - 0x678], edx
mov eax, 1
mov word [ebp - 0x674], ax
mov ecx, 0x20
mov word [ebp - 0x672], cx
mov dword [ebp - 0xc60], 0
push 0
push 0
lea edx, [ebp - 0xc60]
push edx
push 0
lea eax, [ebp - 0x680]
push eax
push 0
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0xc20], eax
cmp dword [ebp - 0xc60], 0
jne 0x47f808
mov dword [ebp - 0xc8c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00472880
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xc8c]
jmp 0x47fb9f
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xc08], eax
cmp dword [ebp - 0xc08], 0
jne 0x47f862
mov ecx, dword [ebp - 0xc20]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp - 0xc90], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00472880
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xc90]
jmp 0x47fb9f
mov edx, dword [ebp - 0xc20]
push edx
mov eax, dword [ebp - 0xc08]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xc94], eax
lea ecx, [ebp - 0xd68]
call fcn.00472510
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xbec]
push ecx
lea ecx, [ebp - 0xd68]
call fcn.0047d100
mov dword [ebp - 0x628], 0
mov dword [ebp - 0x624], 0
mov edx, dword [ebp - 0xbe8]
mov dword [ebp - 0x620], edx
mov eax, dword [ebp - 0xbe4]
mov dword [ebp - 0x61c], eax
push 0
sub esp, 0x10
mov ecx, esp
mov edx, dword [ebp - 0x628]
mov dword [ecx], edx
mov eax, dword [ebp - 0x624]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x620]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x61c]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0xc08]
push ecx
lea ecx, [ebp - 0xd68]
call fcn.00474180
mov edx, dword [ebp - 0xc94]
push edx
mov eax, dword [ebp - 0xc08]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp - 0xc08]
push ecx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [ebp - 0xbec]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
lea ecx, [ebp - 0xd40]
call fcn.00472510
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0xc20]
push eax
lea ecx, [ebp - 0xd40]
call fcn.0047d100
lea ecx, [ebp - 0xc58]
call fcn.004723d0
mov byte [ebp - 4], 0xc
push 0
lea ecx, [ebp - 0xc58]
push ecx
lea ecx, [ebp - 0xd40]
call fcn.00473630
push 0
lea ecx, [ebp - 0xd40]
call fcn.00473930
lea ecx, [ebp - 0xc5c]
call fcn.004723f0
mov byte [ebp - 4], 0xd
push 0
lea edx, [ebp - 0xc5c]
push edx
lea ecx, [ebp - 0xd40]
call fcn.00473630
lea ecx, [ebp - 0xd40]
call fcn.00474140
mov dword [ebp - 0xbec], eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xc5c]
call fcn.00472920
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xc58]
call fcn.00472900
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xd40]
call fcn.004729f0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd68]
call fcn.004729f0
jmp 0x47fad3
lea ecx, [ebp - 0xd18]
call fcn.00472510
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0xbec]
push eax
lea ecx, [ebp - 0xd18]
call fcn.0047d100
push 0
mov ecx, dword [ebp - 0xbe4]
push ecx
mov edx, dword [ebp - 0xbe8]
push edx
lea ecx, [ebp - 0xd18]
call fcn.00480440
mov eax, dword [ebp - 0xbec]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea ecx, [ebp - 0xc54]
call fcn.004723d0
mov byte [ebp - 4], 0xf
push 0
lea ecx, [ebp - 0xc54]
push ecx
lea ecx, [ebp - 0xd18]
call fcn.00473630
lea ecx, [ebp - 0xc48]
call fcn.004723f0
mov byte [ebp - 4], 0x10
push 0
lea ecx, [ebp - 0xd18]
call fcn.00473930
push 0
lea edx, [ebp - 0xc48]
push edx
lea ecx, [ebp - 0xd18]
call fcn.00473630
lea ecx, [ebp - 0xd18]
call fcn.00474140
mov dword [ebp - 0xbec], eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xc48]
call fcn.00472920
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xc54]
call fcn.00472900
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd18]
call fcn.004729f0
push 0x687ae0
push 0x98
call fcn.00537468
add esp, 8
mov dword [ebp - 0xc50], eax
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0xc50], 0
je 0x47fb0b
mov ecx, dword [ebp - 0xc50]
call fcn.0045a240
mov dword [ebp - 0xc4c], eax
jmp 0x47fb15
mov dword [ebp - 0xc4c], 0
mov eax, dword [ebp - 0xc4c]
mov dword [ebp - 0xc98], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xc98]
mov dword [ebp - 0xc0c], ecx
mov edx, dword [ebp - 0xc0c]
mov eax, dword [ebp - 0xbec]
mov dword [edx], eax
mov ecx, dword [ebp - 0xc0c]
mov edx, dword [ebp - 0xbe8]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc0c]
mov ecx, dword [ebp - 0xbe4]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0xc0c]
mov al, byte [ebp - 0xbd6]
mov byte [edx + 0xc], al
mov ecx, dword [ebp - 0xc0c]
mov dword [ebp - 0xcdc], ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00472880
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.00467590
mov eax, dword [ebp - 0xcdc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00536569
mov esp, ebp
pop ebp
ret