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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50bb4a
mov eax, dword fs:[0]
push eax
sub esp, 0xd5c
mov eax, dword [0x546330]
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.00429190
mov dword [ebp - 4], 0
push 4
lea ecx, [ebp - 0x92c]
push ecx
lea ecx, [ebp - 0x7a0]
call fcn.0042a970
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.00421a30
push eax
push str..ico
call fcn.004ecc29
add esp, 8
test eax, eax
jne 0x43e317
mov dword [ebp - 0xc44], 1
jmp 0x43e321
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.004293e0
movzx ecx, byte [ebp - 0xbed]
test ecx, ecx
je 0x43e52e
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.004e2580
add esp, 0xc
push 0x200
push 0
lea ecx, [ebp - 0x618]
push ecx
call fcn.004e2580
add esp, 0xc
push 0x200
push 0
lea edx, [ebp - 0x218]
push edx
call fcn.004e2580
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.00431cf0
add esp, 0x14
push str..ico
lea edx, [ebp - 0x218]
push edx
call fcn.004ecc29
add esp, 8
test eax, eax
jne 0x43e52e
lea ecx, [ebp - 0x824]
call fcn.004291d0
mov byte [ebp - 4], 2
push 0x5339bc
lea eax, [ebp - 0x18]
push eax
call fcn.004f1692
add esp, 8
test eax, eax
jne 0x43e40c
call fcn.00421aa0
push eax
lea ecx, [ebp - 0x824]
call fcn.00429510
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x824]
call fcn.00429720
push 0x50
push 0
push 0
push 1
lea ecx, [ebp - 0x824]
call fcn.00421a30
push eax
push 0
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [ebp - 0xc2c], eax
cmp dword [ebp - 0xc2c], 0
je 0x43e51f
push 0x98
call fcn.004bd6ba
add esp, 4
mov dword [ebp - 0xc24], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0xc24], 0
je 0x43e47d
mov ecx, dword [ebp - 0xc24]
call fcn.0041fc00
mov dword [ebp - 0xc28], eax
jmp 0x43e487
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.00433480
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.004293e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
mov eax, dword [ebp - 0xcb0]
jmp 0x43f5cf
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.004293e0
mov dword [ebp - 0xbd4], 0
mov dword [ebp - 0xbd0], 0
cmp dword [ebp + 0x14], 0
jne 0x43e89f
call fcn.00421aa0
push eax
lea ecx, [ebp - 0x71c]
call fcn.00429150
mov byte [ebp - 4], 4
call fcn.00421ac0
mov ecx, eax
call fcn.0042a1f0
movzx eax, al
test eax, eax
je 0x43e6ba
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x71c]
call fcn.00429720
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
lea ecx, [ebp - 0x71c]
call fcn.00421a30
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xbf8], eax
cmp dword [ebp - 0xbf8], 0xffffffff
jne 0x43e5ce
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
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 0x43e60d
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.004293e0
jmp 0x43e97e
mov dword [ebp - 0xc30], 0
push 0x5239b8
mov ecx, dword [ebp - 0xbd0]
push ecx
call fcn.004be1d9
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 0x43e6b5
mov eax, dword [ebp - 0xbd4]
mov dword [ebp - 0xca8], eax
mov ecx, dword [ebp - 0xca8]
push ecx
call fcn.004bda26
add esp, 4
mov dword [ebp - 0xbd4], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
jmp 0x43e88b
call fcn.00421ac0
push eax
lea ecx, [ebp - 0x71c]
call fcn.004296f0
call fcn.00421d20
movzx edx, al
test edx, edx
je 0x43e842
call fcn.00421ad0
mov dword [ebp - 0xc18], eax
cmp dword [ebp - 0xc18], 0
jne 0x43e703
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x698]
call fcn.00405160
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.0044df20
add esp, 0x10
test eax, eax
jne 0x43e74a
mov dword [ebp - 0xc34], 1
jmp 0x43e754
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.004050b0
movzx eax, byte [ebp - 0xbee]
test eax, eax
je 0x43e78e
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
mov ecx, dword [ebp - 0x9b4]
mov dword [ebp - 0xbd0], ecx
cmp dword [ebp - 0xbd0], 0
jne 0x43e7b7
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
push 0x5239b8
mov edx, dword [ebp - 0xbd0]
push edx
call fcn.004be1d9
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.0044dd30
add esp, 0x10
test eax, eax
jne 0x43e840
mov edx, dword [ebp - 0xbd4]
mov dword [ebp - 0xcb8], edx
push 1
mov eax, dword [ebp - 0xcb8]
push eax
call fcn.004bd6ef
add esp, 8
mov dword [ebp - 0xbd4], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
jmp 0x43e88b
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.00421a30
push eax
call fcn.0045e490
add esp, 0x10
mov dword [ebp - 0xcc0], eax
cmp dword [ebp - 0xcc0], 0
jge 0x43e88b
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e97e
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x71c]
call fcn.004293e0
jmp 0x43e976
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.00421a70
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0xbfc], eax
cmp dword [ebp - 0xbfc], 0
jne 0x43e8c7
jmp 0x43e97e
mov eax, dword [ebp - 0xbfc]
push eax
call fcn.00421a70
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0xc38], eax
cmp dword [ebp - 0xc38], 0
jne 0x43e8fb
mov ecx, dword [ebp - 0xbfc]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x43e97e
mov edx, dword [ebp - 0xbfc]
push edx
call fcn.00421a70
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0xbd0], eax
cmp dword [ebp - 0xbd0], 0
jne 0x43e91f
jmp 0x43e97e
push 0x5239b8
mov eax, dword [ebp - 0xbd0]
push eax
call fcn.004be1d9
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.004e2000
add esp, 0xc
mov edx, dword [ebp - 0xbfc]
push edx
call dword [sym.imp.KERNEL32.dll_FreeResource]
xor eax, eax
jne 0x43e542
cmp dword [ebp - 0xbd4], 0
jne 0x43ea86
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 0x43e9bb
jmp 0x43ea86
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 0x43e9eb
mov eax, dword [ebp - 0xc00]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43ea86
mov dword [ebp - 0xc3c], 0
push 0x5239b8
mov ecx, dword [ebp - 0xbd0]
push ecx
call fcn.004be1d9
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 0x43ea7f
mov eax, dword [ebp - 0xbd4]
mov dword [ebp - 0xccc], eax
mov ecx, dword [ebp - 0xccc]
push ecx
call fcn.004bda26
add esp, 4
mov dword [ebp - 0xbd4], 0
jmp 0x43ea86
cmp dword [ebp - 0xbd4], 0
jne 0x43eab6
mov dword [ebp - 0xcd0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
mov eax, dword [ebp - 0xcd0]
jmp 0x43f5cf
mov dword [ebp - 0xbe0], 0
lea ecx, [ebp - 0xc14]
call fcn.004bfe30
mov byte [ebp - 4], 6
mov byte [ebp - 0xbd5], 1
push 4
lea edx, [ebp - 0x9b0]
push edx
lea ecx, [ebp - 0x7a0]
call fcn.0042a970
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.00421a30
push eax
push str..svg
call fcn.004ecc29
add esp, 8
test eax, eax
jne 0x43eb29
mov dword [ebp - 0xc40], 1
jmp 0x43eb33
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.004293e0
movzx edx, byte [ebp - 0xbef]
test edx, edx
je 0x43ec78
mov eax, dword [ebp - 0xbd0]
push eax
mov ecx, dword [ebp - 0xbd4]
push ecx
lea edx, [ebp - 0xc04]
push edx
call fcn.004c0040
add esp, 0xc
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xc04]
call fcn.004327e0
movzx eax, al
test eax, eax
je 0x43ec67
push 0
lea ecx, [ebp - 0xc04]
call fcn.00432830
mov ecx, eax
call fcn.004c0030
call fcn.004be260
push eax
mov ecx, dword [ebp + 0xc]
call fcn.004210c0
mov ecx, eax
call fcn.0041f1f0
push eax
lea ecx, [ebp - 0xc04]
call fcn.00432830
mov ecx, eax
call fcn.004c0600
call fcn.004be260
push eax
mov ecx, dword [ebp + 0xc]
call fcn.004210c0
mov ecx, eax
call fcn.0041f1f0
push eax
lea ecx, [ebp - 0xcf0]
push ecx
lea ecx, [ebp - 0xc04]
call fcn.00432830
mov ecx, eax
call fcn.004c02d0
mov dword [ebp - 0xc74], eax
mov edx, dword [ebp - 0xc74]
push edx
lea ecx, [ebp - 0xc14]
call fcn.00432780
lea ecx, [ebp - 0xcf0]
call fcn.00432500
lea ecx, [ebp - 0xc14]
call fcn.004c05f0
mov dword [ebp - 0xbe8], eax
lea ecx, [ebp - 0xc14]
call fcn.004c0020
mov dword [ebp - 0xbe4], eax
lea ecx, [ebp - 0xc14]
call fcn.00440af0
lea ecx, [ebp - 0xc14]
call fcn.004c0000
mov dword [ebp - 0xbe0], eax
mov byte [ebp - 0xbd5], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc04]
call fcn.00432450
jmp 0x43ecab
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.0046da80
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.004bda26
add esp, 4
cmp dword [ebp - 0xbe0], 0
jne 0x43ed05
mov dword [ebp - 0xc7c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00432500
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
mov eax, dword [ebp - 0xc7c]
jmp 0x43f5cf
push 0x2c
push 0
lea ecx, [ebp - 0x654]
push ecx
call fcn.004e2580
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 0x43ede6
mov dword [ebp - 0xc80], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00432500
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
mov eax, dword [ebp - 0xc80]
jmp 0x43f5cf
mov dword [ebp - 0xbcc], 0
jmp 0x43ee01
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 0x43efd9
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 0x43ef18
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 0x43ef76
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 0x43efd4
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 0x43edf2
movzx ecx, byte [ebp - 0xbd5]
test ecx, ecx
je 0x43eff3
mov edx, dword [ebp - 0xbe0]
push edx
call fcn.0046da60
add esp, 4
mov dword [ebp - 0xc1c], 0x64
push 0
push 0x514c14
lea ecx, [ebp - 0x7a0]
call fcn.00429b30
mov dword [ebp - 0xc70], eax
cmp dword [ebp - 0xc70], 0xffffffff
je 0x43f069
push 0xffffffffffffffff
mov eax, dword [ebp - 0xc70]
add eax, 3
push eax
lea ecx, [ebp - 0x8a8]
push ecx
lea ecx, [ebp - 0x7a0]
call fcn.0042a360
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8a8]
call fcn.00421a30
push eax
call fcn.004f16d2
add esp, 4
mov dword [ebp - 0xc1c], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x8a8]
call fcn.004293e0
mov ecx, dword [ebp + 0xc]
call fcn.004210c0
mov ecx, eax
call fcn.0041f040
mov dword [ebp - 0xc64], eax
mov edx, dword [ebp - 0xc1c]
cmp edx, dword [ebp - 0xc64]
je 0x43f503
movzx eax, byte [ebp - 0xbd5]
test eax, eax
je 0x43f503
mov ecx, dword [ebp + 0xc]
call fcn.004210c0
mov ecx, eax
call fcn.0041f040
mov dword [ebp - 0xc6c], eax
cvtsi2sd xmm0, dword [ebp - 0xc6c]
mov ecx, dword [ebp - 0xc6c]
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x514d20]
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.00440ad0
add esp, 4
call fcn.004be260
mov dword [ebp - 0xbe8], eax
push ecx
movss xmm0, dword [ebp - 0xc88]
movss dword [esp], xmm0
call fcn.00440ad0
add esp, 4
call fcn.004be260
mov dword [ebp - 0xbe4], eax
cmp dword [ebp - 0xc64], 0xc8
jle 0x43f429
movzx edx, byte [ebp + 8]
test edx, edx
je 0x43f429
push 0x2c
push 0
lea eax, [ebp - 0x680]
push eax
call fcn.004e2580
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 0x43f238
mov dword [ebp - 0xc8c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc14]
call fcn.00432500
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
mov eax, dword [ebp - 0xc8c]
jmp 0x43f5cf
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0xc08], eax
cmp dword [ebp - 0xc08], 0
jne 0x43f292
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.00432500
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
mov eax, dword [ebp - 0xc90]
jmp 0x43f5cf
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.00432200
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xbec]
push ecx
lea ecx, [ebp - 0xd68]
call fcn.0043cd10
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.00433da0
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.00432200
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0xc20]
push eax
lea ecx, [ebp - 0xd40]
call fcn.0043cd10
lea ecx, [ebp - 0xc58]
call fcn.004320c0
mov byte [ebp - 4], 0xc
push 0
lea ecx, [ebp - 0xc58]
push ecx
lea ecx, [ebp - 0xd40]
call fcn.00433250
push 0
lea ecx, [ebp - 0xd40]
call fcn.00433550
lea ecx, [ebp - 0xc5c]
call fcn.004320e0
mov byte [ebp - 4], 0xd
push 0
lea edx, [ebp - 0xc5c]
push edx
lea ecx, [ebp - 0xd40]
call fcn.00433250
lea ecx, [ebp - 0xd40]
call fcn.00433d60
mov dword [ebp - 0xbec], eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xc5c]
call fcn.00432580
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xc58]
call fcn.00432580
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xd40]
call fcn.00432650
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd68]
call fcn.00432650
jmp 0x43f503
lea ecx, [ebp - 0xd18]
call fcn.00432200
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0xbec]
push eax
lea ecx, [ebp - 0xd18]
call fcn.0043cd10
push 0
mov ecx, dword [ebp - 0xbe4]
push ecx
mov edx, dword [ebp - 0xbe8]
push edx
lea ecx, [ebp - 0xd18]
call fcn.0043fdf0
mov eax, dword [ebp - 0xbec]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
lea ecx, [ebp - 0xc54]
call fcn.004320c0
mov byte [ebp - 4], 0xf
push 0
lea ecx, [ebp - 0xc54]
push ecx
lea ecx, [ebp - 0xd18]
call fcn.00433250
lea ecx, [ebp - 0xc48]
call fcn.004320e0
mov byte [ebp - 4], 0x10
push 0
lea ecx, [ebp - 0xd18]
call fcn.00433550
push 0
lea edx, [ebp - 0xc48]
push edx
lea ecx, [ebp - 0xd18]
call fcn.00433250
lea ecx, [ebp - 0xd18]
call fcn.00433d60
mov dword [ebp - 0xbec], eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xc48]
call fcn.00432580
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xc54]
call fcn.00432580
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd18]
call fcn.00432650
push 0x5239b8
push 0x98
call fcn.004be184
add esp, 8
mov dword [ebp - 0xc50], eax
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0xc50], 0
je 0x43f53b
mov ecx, dword [ebp - 0xc50]
call fcn.0041fc00
mov dword [ebp - 0xc4c], eax
jmp 0x43f545
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.00432500
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7a0]
call fcn.004293e0
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.004bd6ac
mov esp, ebp
pop ebp
ret