Function at 0x10017810
Capabilities:
Link many functions at runtime
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x2c], eax
test eax, eax
jl 0x1001782f
cmp eax, 9
jg 0x1001782f
mov eax, 1
jmp 0x1001784e
cmp eax, 0xa
jl 0x10017840
cmp eax, 0x63
jg 0x10017840
mov eax, 2
jmp 0x1001784e
cmp eax, 0x64
jne 0x10017cc3
mov eax, 3
mov esi, dword [eax*4 + 0x100a74bc]
mov ebp, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov ebx, dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
mov dword [esp + 0x24], eax
mov eax, dword [0x100c7a60]
mov dword [esp + 0x28], esi
test eax, eax
jne 0x100178a9
push 0x100a6b44
call ebx
test eax, eax
jne 0x10017885
mov edi, esi
mov dword [esp + 0x10], edi
jmp 0x100178b2
push 0x100a9e44
push eax
call ebp
mov dword [0x100c7a60], eax
test eax, eax
jne 0x1001789e
mov edi, esi
mov dword [esp + 0x10], edi
jmp 0x100178bb
push esi
call eax
mov edi, eax
mov dword [esp + 0x10], edi
jmp 0x100178b2
push esi
call eax
mov edi, eax
mov dword [esp + 0x10], eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x100178eb
push 0x100a6b44
call ebx
test eax, eax
jne 0x100178d0
mov dword [esp + 0x14], 0x39
jmp 0x100178f3
push 0x100a9e44
push eax
call ebp
mov dword [0x100c7a60], eax
test eax, eax
jne 0x100178eb
mov dword [esp + 0x14], 0x39
jmp 0x100178fc
push 0x39
call eax
mov dword [esp + 0x14], eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x1001792d
push 0x100a6b44
call ebx
test eax, eax
jne 0x1001790e
mov eax, 0x3a
jmp 0x10017931
push 0x100a9e44
push eax
call ebp
mov ecx, eax
mov dword [0x100c7a60], ecx
test ecx, ecx
jne 0x10017927
lea eax, [ecx + 0x3a]
jmp 0x10017937
push 0x3a
call ecx
jmp 0x10017931
push 0x3a
call eax
mov ecx, dword [0x100c7a60]
mov edx, dword [esp + 0x44]
mov ebx, dword [edx + 0x8c]
mov esi, dword [edx + 0x88]
sub esi, dword [edx + 0x80]
sub ebx, eax
test ecx, ecx
jne 0x10017987
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x10017967
lea ecx, [eax + 3]
jmp 0x1001798d
push 0x100a9e44
push eax
call ebp
mov dword [0x100c7a60], eax
test eax, eax
jne 0x1001797d
lea ecx, [eax + 3]
jmp 0x1001798d
push 3
call dword [0x100c7a60]
jmp 0x1001798b
push 3
call ecx
mov ecx, eax
mov eax, esi
sub eax, edi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x44]
sar edi, 1
sub edi, ecx
add edi, dword [eax + 0x80]
cmp dword [esp + 0x4c], 0x64
jne 0x100179b7
mov esi, 1
call fcn.1003f150
add edi, eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x100179f4
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x100179d9
mov dword [esp + 0x18], 0x10
jmp 0x100179fc
push 0x100a9e44
push eax
call ebp
mov dword [0x100c7a60], eax
test eax, eax
jne 0x100179f4
mov dword [esp + 0x18], 0x10
jmp 0x10017a05
push 0x10
call eax
mov dword [esp + 0x18], eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x10017a2f
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x10017a19
lea ebp, [eax + 0x28]
jmp 0x10017a35
push 0x100a9e44
push eax
call ebp
mov dword [0x100c7a60], eax
test eax, eax
jne 0x10017a2f
lea ebp, [eax + 0x28]
jmp 0x10017a3e
push 0x28
call eax
mov ebp, eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x10017a84
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x10017a58
mov esi, 0x26
mov dword [esp + 0x20], esi
jmp 0x10017a8e
push 0x100a9e44
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x100c7a60], eax
test eax, eax
jne 0x10017a78
mov esi, 0x26
mov dword [esp + 0x20], esi
jmp 0x10017a97
push 0x26
call eax
mov esi, eax
mov dword [esp + 0x20], esi
jmp 0x10017a8e
push 0x26
call eax
mov esi, eax
mov dword [esp + 0x20], eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x10017acf
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x10017ab0
mov dword [esp + 0x1c], 0x39
jmp 0x10017ad7
push 0x100a9e44
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x100c7a60], eax
test eax, eax
jne 0x10017acf
mov dword [esp + 0x1c], 0x39
jmp 0x10017ad7
push 0x39
call eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x4c], 0x64
jne 0x10017b7e
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x60]
mov esi, dword [esp + 0x10]
sub edi, 0xa
lea ecx, [edi + esi - 3]
lea edx, [ebx + ebp]
test eax, eax
je 0x10017b00
mov eax, dword [eax + 4]
jmp 0x10017b02
xor eax, eax
mov ebp, dword [esp + 0x18]
push 0
push 0
push 0
push 2
push 0x10
push 0x10
push 0
push 0
push ebp
push ebp
mov ebp, dword [esp + 0x70]
push edx
push ecx
mov ecx, dword [ebp]
push eax
push ecx
call sub.GDIPLUS.DLL_GdipDrawImageRectRectI
test eax, eax
je 0x10017b2f
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x44]
push edx
call fcn.10016960
test eax, eax
je 0x10017b42
mov eax, dword [eax + 4]
jmp 0x10017b44
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
push 0
push 0
push 0
push 2
push 0x39
push ecx
push 0
push 0
push edx
push esi
push ebx
push edi
push eax
mov eax, dword [ebp]
push eax
call sub.GDIPLUS.DLL_GdipDrawImageRectRectI
test eax, eax
je 0x10017cc3
mov dword [ebp + 4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, edi
add edi, eax
sub ecx, esi
add ecx, eax
lea eax, [ebx + edx]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x60]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edi
lea ecx, [edi + 4]
lea edx, [ebx + ebp]
test eax, eax
je 0x10017bb7
mov eax, dword [eax + 4]
jmp 0x10017bb9
xor eax, eax
mov esi, dword [esp + 0x18]
push 0
push 0
push 0
push 2
push 0x10
push 0x10
push 0
push 0
push esi
push esi
mov esi, dword [esp + 0x70]
push edx
push ecx
mov ecx, dword [esi]
push eax
push ecx
call sub.GDIPLUS.DLL_GdipDrawImageRectRectI
test eax, eax
je 0x10017be5
mov dword [esi + 4], eax
xor ecx, ecx
cmp dword [esp + 0x24], ecx
mov dword [esp + 0x4c], ecx
jle 0x10017cc3
mov ebp, dword [esp + 0x1c]
test ecx, ecx
jl 0x10017c08
lea eax, [esp + 0x2c]
call fcn.1000f040
jmp 0x10017c0b
or eax, 0xffffffff
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov ebx, dword [ebx + 0x5c]
sub ecx, esi
sub edx, edi
test ebx, ebx
je 0x10017c2f
mov ebx, dword [ebx + 4]
jmp 0x10017c31
xor ebx, ebx
push 0
push 0
push 0
push 2
push ebp
mov ebp, dword [esp + 0x34]
push ebp
mov ebp, dword [esp + 0x34]
imul eax, ebp
push eax
push 0
push edx
push ecx
push edi
push esi
mov esi, dword [esp + 0x78]
mov edx, dword [esi]
push ebx
push edx
call sub.GDIPLUS.DLL_GdipDrawImageRectRectI
test eax, eax
je 0x10017c61
mov dword [esi + 4], eax
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x10017c9c
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x10017c80
mov eax, 0x26
jmp 0x10017ca0
push 0x100a9e44
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x100c7a60], eax
test eax, eax
jne 0x10017c9c
mov eax, 0x26
jmp 0x10017ca0
push 0x26
call eax
push 0
neg eax
push eax
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.USER32.DLL_OffsetRect]
mov ecx, dword [esp + 0x4c]
inc ecx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x4c], ecx
jl 0x10017bf9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc