Function at 0x412870
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x234
mov ecx, dword [0x5b5574]
push ebx
mov eax, 1
push ebp
push esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x88], eax
push edi
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [esp + 0x144]
push 0x40
push eax
xor ebx, ebx
push 0x4e73
push ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x6c], ebx
call edi
mov eax, dword [esp + 0x268]
lea edx, [esp + 0x144]
push 0x598400
push edx
push eax
call fcn.004d5ee1
mov esi, dword [esp + 0x270]
add esp, 0xc
cmp esi, ebx
je 0x412938
mov dword [esi], ebx
mov eax, dword [esp + 0x274]
cmp eax, ebx
je 0x412945
mov dword [eax], ebx
mov ecx, dword [esp + 0x248]
push 0x5983fc
push ecx
call fcn.0051e2e0
mov ebp, eax
add esp, 8
cmp ebp, ebx
mov dword [esp + 0x3c], ebp
jne 0x412971
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x234
ret
mov eax, dword [esp + 0x24c]
cmp eax, ebx
jle 0x4129a0
push eax
push ebp
call fcn.0051c140
add esp, 8
test eax, eax
jne 0x4129a0
push ebp
call fcn.005259b0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret
lea edx, [esp + 0x34]
push edx
push 0x101
push ebp
call fcn.0051a2b0
lea eax, [esp + 0x2c]
push eax
push pe_nt_image_headers32
push ebp
call fcn.0051a2b0
lea ecx, [esp + 0x40]
push ecx
push 0x103
push ebp
call fcn.0051a2b0
lea edx, [esp + 0x38]
push edx
push 0x102
push ebp
call fcn.0051a080
lea eax, [esp + 0x40]
push eax
push 0x115
push ebp
call fcn.0051a080
lea ecx, [esp + 0xd8]
push ecx
push 0x118
push ebp
call fcn.0051a080
add esp, 0x48
lea edx, [esp + 0xa4]
push edx
push 0x119
push ebp
call fcn.0051a080
lea eax, [esp + 0x3c]
push eax
push 0x106
push ebp
call fcn.0051a080
lea ecx, [esp + 0xb0]
push ecx
push 0x11c
push ebp
call fcn.0051a080
lea edx, [esp + 0x7c]
push edx
push 0x112
push ebp
call fcn.0051a080
lea eax, [esp + 0xbc]
push eax
push 0x116
push ebp
call fcn.0051a080
lea ecx, [esp + 0xf8]
push ecx
push 0x153
push ebp
call fcn.0051a080
add esp, 0x48
lea edx, [esp + 0x88]
push edx
push 0x201
push ebp
call fcn.0051a2b0
lea eax, [esp + 0xb8]
push eax
push 0x80a4
push ebp
call fcn.0051a2b0
lea ecx, [esp + 0xc0]
push ecx
push 0x80a5
push ebp
call fcn.0051a2b0
lea edx, [esp + 0x84]
push edx
push 0x11a
push ebp
call fcn.0051a2b0
lea eax, [esp + 0x94]
push eax
push 0x11b
push ebp
call fcn.0051a2b0
lea ecx, [esp + 0xbc]
push ecx
push 0x128
push ebp
call fcn.0051a2b0
mov eax, dword [esp + 0xc8]
add esp, 0x48
cmp ax, 3
jne 0x412b17
fld dword [esp + 0x60]
fmul dword [0x552780]
fadd dword [0x5526f0]
fstp dword [esp + 0x60]
fld dword [esp + 0x64]
fmul dword [0x552780]
jmp 0x412b2f
cmp ax, 2
jne 0x412b39
fld dword [esp + 0x60]
fadd dword [0x5526f0]
fstp dword [esp + 0x60]
fld dword [esp + 0x64]
fadd dword [0x5526f0]
fstp dword [esp + 0x64]
mov eax, dword [esp + 0x14]
cmp ax, bx
je 0x41365c
mov edx, dword [esp + 0x10]
and eax, 0xffff
mov ecx, edx
and ecx, 0xffff
imul ecx, eax
cmp ecx, 0x60
jg 0x41365c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x8c]
cmp ecx, eax
jbe 0x412bbf
and eax, 0xffff
push eax
push 0x116
push ebp
mov dword [esp + 0x98], eax
call fcn.0051a220
lea edx, [esp + 0x8c]
push edx
push 0x116
push ebp
call fcn.0051a080
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xa4]
and eax, 0xffff
add esp, 0x18
cmp eax, ecx
jne 0x41365c
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x26c]
test ebx, ebx
je 0x412c07
mov ecx, dword [0x5a9cb0]
mov eax, 0x5a9cb0
test ecx, ecx
je 0x412c07
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x412be7
cmp word [eax + 4], cx
je 0x412bf1
add eax, 0xc
cmp dword [eax], 0
jne 0x412bdd
jmp 0x412c07
mov ecx, dword [eax]
push 0x40
push ebx
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
and ecx, 0xffff
mov eax, ecx
cmp eax, 0x7ffe
jg 0x412c9f
je case.0x412c2e.6
dec eax
cmp eax, 7
ja case.default.0x412c2e
jmp dword [eax*4 + 0x4142f8]
mov edx, dword [0x5b5574]
push 0x20
push ebx
push 0x4cd
push edx
call edi
mov edx, dword [esp + 0x10]
test esi, esi
je case.0x412c2e.6
mov dword [esi], 0
jmp case.0x412c2e.6
test esi, esi
je case.0x412c2e.6
mov dword [esi], 1
jmp case.0x412c2e.6
test esi, esi
je case.0x412c2e.6
mov dword [esi], 3
jmp case.0x412c2e.6
test esi, esi
je case.0x412c2e.6
mov dword [esi], 4
jmp case.0x412c2e.6
test esi, esi
je case.0x412c2e.6
mov dword [esi], 6
jmp case.0x412c2e.6
cmp eax, 0x808d
jg 0x412cd3
je case.0x412c2e.6
sub eax, 0x8003
je case.0x412c2e.2
sub eax, 2
je 0x412cbb
sub eax, 0x24
je case.0x412c2e.6
jmp case.default.0x412c2e
test esi, esi
je case.0x412c2e.6
mov dword [esi], 2
jmp case.0x412c2e.6
test esi, esi
je case.0x412c2e.6
mov dword [esi], 5
jmp case.0x412c2e.6
cmp eax, 0x80b2
je case.0x412c2e.8
cmp eax, 0x8773
jle case.default.0x412c2e
cmp eax, 0x8775
jle case.0x412c2e.6
mov eax, dword [esp + 0x268]
push ecx
push str.Unknown_TIF_compression___d_
push eax
call fcn.004d5ee1
add esp, 0xc
jmp 0x413f3b
test esi, esi
je case.0x412c2e.6
mov dword [esi], 7
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 0xffff
and eax, 0xffff
imul ecx, eax
cmp ecx, 0xc
mov ecx, dword [esp + 0x30]
jne 0x412d46
cmp cx, 2
jne 0x412d46
push str.__rgb_
push ebx
call fcn.004d62f1
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
add esp, 8
mov eax, dword [esp + 0x260]
test eax, eax
je 0x412d6f
mov ebx, dword [esp + 0x14]
mov edi, edx
and edi, 0xffff
and ebx, 0xffff
imul edi, ebx
mov ebx, dword [esp + 0x26c]
mov dword [eax], edi
cmp cx, 5
jne 0x412d8b
push str.__CMYK
push ebx
call fcn.004d62f1
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
add esp, 8
test esi, esi
je 0x412da5
push ebp
call fcn.005259b0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret
mov edi, dword [esp + 0x278]
cmp dx, 2
je 0x412dcb
cmp dx, 4
je 0x412dcb
cmp dx, 5
jne 0x412e60
cmp cx, dx
jne 0x412e60
lea ecx, [esp + 0x74]
lea edx, [esp + 0x80]
push ecx
push edx
push 0x152
push ebp
call fcn.0051a080
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x90]
add esp, 0x10
cmp dx, 4
jne 0x412e03
cmp cx, 2
je 0x412e1c
jmp 0x412e35
cmp dx, 2
jne 0x412e11
cmp ax, 1
jae 0x412e1c
jmp 0x412e45
cmp dx, 5
jne 0x412e35
cmp cx, dx
jne 0x412e35
mov esi, dword [esp + 0x274]
mov dword [esp + 0x5c], 1
test esi, esi
je 0x412e35
mov dword [esi], 1
cmp ax, 1
jb 0x412e45
mov eax, dword [esp + 0x74]
cmp word [eax], 1
je 0x412e50
mov dword [esp + 0x25c], 0
cmp edi, 1
jne 0x412e60
mov dword [esp + 0x25c], 0
mov eax, dword [esp + 0x14]
mov ebx, edx
mov esi, eax
and ebx, 0xffff
and esi, 0xffff
imul ebx, esi
mov esi, dword [esp + 0x98]
cmp ax, 8
mov dword [esp + 0x2c], ebx
jbe 0x412e8e
cmp dx, 1
ja 0x412ec6
cmp si, 2
je 0x412ec6
cmp cx, 6
je 0x412ec6
cmp ax, 8
jbe 0x412ea6
cmp cx, 1
ja 0x412ec6
cmp dx, 3
jbe 0x412eb7
cmp word [esp + 0x28], 0x8005
jne 0x412ec6
jmp 0x412ec0
cmp word [esp + 0x28], 0x8005
jne 0x412f06
cmp cx, 5
jne 0x412f06
mov ebx, 0x18
cmp si, 1
mov dword [esp + 0x2c], ebx
jne 0x412eed
cmp cx, 2
jne 0x412eed
cmp ax, 8
jne 0x412eed
cmp dx, 3
je 0x412f06
cmp dx, 4
je 0x412f06
mov edx, 3
mov dword [esp + 0x6c], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 8
mov eax, dword [esp + 0x250]
xor esi, esi
cmp eax, esi
je 0x412f5f
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x4c]
push ecx
push edx
push 0x8773
push ebp
call fcn.0051a2b0
mov eax, dword [esp + 0x5c]
add esp, 0x10
cmp eax, esi
jle 0x412f5b
push ebp
call fcn.00412750
shr eax, 0x10
and eax, 0x1f
add esp, 4
cmp eax, 6
je 0x413062
cmp eax, 4
je 0x413062
mov dword [esp + 0x4c], esi
mov edx, dword [esp + 0x10]
cmp word [esp + 0x98], 2
je 0x412f7b
cmp word [esp + 0x28], 6
jne 0x412f9d
cmp dword [esp + 0x88], esi
jbe 0x412f9d
mov edx, 3
mov ebx, 0x18
mov dword [esp + 0x6c], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 8
mov dword [esp + 0x2c], ebx
cmp edi, esi
je 0x412fed
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4c], esi
cmp eax, esi
je 0x413f3b
mov ebp, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
push ecx
push 0x102
push ebp
mov dword [esp + 0x78], 0
call fcn.0051a080
lea edx, [esp + 0x1c]
push edx
push 0x115
push ebp
call fcn.0051a080
mov ebx, 8
add esp, 0x18
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x278]
test eax, eax
jne 0x413017
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x413017
cmp word [esp + 0x14], 8
jne 0x413017
cmp dx, 4
jne 0x413017
mov ebx, 0x18
mov dword [esp + 0x2c], ebx
mov eax, ebx
mov edi, 1
imul eax, dword [esp + 0x20]
add eax, 0x1f
mov ecx, ebx
cdq
and edx, 0x1f
add eax, edx
mov esi, eax
shl edi, cl
sar esi, 5
shl esi, 2
cmp ebx, 8
mov dword [esp + 0x84], esi
mov dword [esp + 0x18], edi
jbe 0x41304e
xor edi, edi
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x10]
cmp ax, 2
jne 0x4130aa
cmp word [esp + 0x14], 8
je 0x4130c0
jmp 0x4130c9
lea eax, [esp + 0x14]
mov dword [esp + 0x6c], esi
push eax
push 0x102
push ebp
call fcn.0051a080
lea ecx, [esp + 0x1c]
push ecx
push 0x115
push ebp
call fcn.0051a080
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebx, edx
and eax, 0xffff
and ebx, 0xffff
add esp, 0x18
imul ebx, eax
mov dword [esp + 0x2c], ebx
jmp 0x412f5f
cmp ax, 1
jne 0x4130c9
cmp word [esp + 0x14], 0x10
jne 0x4130c9
cmp word [esp + 0x30], 3
jne 0x4130c9
mov edi, pe_nt_image_headers32
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
push esi
push eax
push ecx
push esi
call fcn.00414380
add esp, 0x10
test eax, eax
je 0x41365c
mov edx, esi
imul edx, dword [esp + 0x34]
lea eax, [edx + edi*4 + 0x28]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
mov dword [esp + 0x40], eax
je 0x41360a
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
xor eax, eax
mov dword [esp + 0x68], esi
mov dword [esi], 0x28
mov ecx, dword [esp + 0x20]
mov dword [esi + 4], ecx
mov edx, dword [esp + 0x34]
mov dword [esi + 8], edx
mov dword [esi + 0x20], edi
mov word [esi + 0xe], bx
mov word [esi + 0xc], 1
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x24], eax
fld dword [esp + 0x60]
call fcn.004d6118
mov dword [esi + 0x18], eax
fld dword [esp + 0x64]
call fcn.004d6118
test edi, edi
mov dword [esi + 0x1c], eax
ja 0x413166
cmp word [esp + 0x30], 3
jne 0x413425
xor eax, eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x54]
push ecx
push edx
push 0x140
push ebp
call fcn.0051a2b0
add esp, 0x14
test eax, eax
jne 0x4131a7
xor ecx, ecx
xor ebp, ebp
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x1c], ecx
jmp 0x4131af
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x38]
cmp word [esp + 0x98], 2
jne 0x4131c5
mov eax, 1
mov dword [esp + 0x30], eax
jmp 0x4131c9
mov eax, dword [esp + 0x30]
cmp edi, 1
jne 0x4131d7
mov edi, 2
mov dword [esp + 0x18], edi
cmp ax, 3
jne 0x4132ee
test ecx, ecx
mov dword [esp + 0x5c], 0
je 0x413425
test ebp, ebp
je 0x41342d
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x413226
push eax
push ebp
push ecx
mov cl, byte [esp + 0x20]
mov edx, 1
shl edx, cl
dec edx
push edx
call fcn.004126f0
add esp, 0x10
cmp eax, 0x10
jne 0x413226
mov dword [esp + 0x5c], 1
test ebp, ebp
je 0x41342d
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41342d
mov cl, byte [esp + 0x14]
mov edx, 1
shl edx, cl
xor ecx, ecx
lea edi, [esi + 0x29]
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x18]
cmp eax, edx
jb 0x413258
mov eax, edx
cmp ecx, eax
jae 0x41342d
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x413347
mov edx, dword [esp + 0x50]
xor eax, eax
mov ax, word [edx + ecx*2]
mov esi, eax
shl esi, 8
sub esi, eax
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
xor eax, eax
mov byte [edi + 1], dl
mov ax, word [ebp + ecx*2]
mov esi, eax
shl esi, 8
sub esi, eax
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
xor eax, eax
mov byte [edi], dl
mov edx, dword [esp + 0x1c]
mov ax, word [edx + ecx*2]
mov esi, eax
shl esi, 8
sub esi, eax
mov eax, 0x80008001
imul esi
add edx, esi
mov esi, dword [esp + 0x68]
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
inc ecx
mov byte [edi - 1], dl
mov edx, dword [esp + 0x74]
add edi, 4
jmp 0x41324e
test ax, ax
je 0x4133ad
cmp ax, 1
je 0x4133ed
test edi, edi
mov dword [esp + 0x1c], 0
jbe 0x413425
dec edi
mov eax, 0xff
xor edx, edx
lea ecx, [esi + 0x29]
div edi
mov edx, eax
mov al, byte [esp + 0x1c]
mov esi, dword [esp + 0x18]
imul dl
mov byte [ecx + 1], al
mov byte [ecx], al
mov byte [ecx - 1], al
mov eax, dword [esp + 0x1c]
inc eax
add ecx, 4
cmp eax, esi
mov dword [esp + 0x1c], eax
jb 0x413320
jmp 0x413429
mov eax, dword [esp + 0x50]
cmp word [eax + ecx*2], 0xff
jbe 0x41335d
mov word [eax + ecx*2], 0xff
mov ebp, dword [esp + 0x38]
cmp word [ebp + ecx*2], 0xff
jbe 0x413371
mov word [ebp + ecx*2], 0xff
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
cmp word [eax + ecx*2], 0xff
jbe 0x413387
mov word [eax + ecx*2], 0xff
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x50]
inc ecx
add edi, 4
mov al, byte [eax + ecx*2 - 2]
mov byte [edi - 3], al
mov al, byte [ebp + ecx*2 - 2]
mov byte [edi - 4], al
mov eax, dword [esp + 0x1c]
mov al, byte [eax + ecx*2 - 2]
mov byte [edi - 5], al
jmp 0x41324e
lea ecx, [edi - 1]
test edi, edi
mov dword [esp + 0x1c], ecx
jbe 0x413425
mov eax, 0xff
xor edx, edx
div ecx
mov esi, dword [esp + 0x18]
mov edx, eax
mov eax, dword [esp + 0x68]
lea ecx, [eax + 0x29]
mov al, byte [esp + 0x1c]
mov ebp, dword [esp + 0x1c]
imul dl
mov byte [ecx + 1], al
mov byte [ecx], al
mov byte [ecx - 1], al
dec ebp
add ecx, 4
dec esi
mov dword [esp + 0x1c], ebp
jne 0x4133ce
jmp 0x413429
mov eax, dword [esp + 0x18]
xor ebx, ebx
test eax, eax
jbe 0x413425
mov ecx, eax
mov eax, 0xff
dec ecx
xor edx, edx
div ecx
mov edx, eax
mov eax, dword [esp + 0x68]
lea ecx, [eax + 0x29]
mov al, bl
add ecx, 4
imul dl
mov byte [ecx - 3], al
mov byte [ecx - 4], al
mov byte [ecx - 5], al
mov eax, dword [esp + 0x18]
inc ebx
cmp ebx, eax
jb 0x41340c
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x68]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi]
mov eax, dword [esp + 0x6c]
lea edi, [edx + ecx*4]
add edi, esi
test eax, eax
mov dword [esp + 0x18], edi
je 0x413794
mov eax, dword [esp + 0x58]
xor esi, esi
and eax, 0xffff
lea ecx, [eax - 1]
cmp ecx, 7
ja case.default.0x41345a
jmp dword [ecx*4 + 0x414318]
mov esi, 4
mov dword [esp + 0x58], 0
jmp case.default.0x41345a
mov dword [esp + 0x58], 6
jmp 0x413482
mov dword [esp + 0x58], 8
mov esi, 1
mov ecx, dword [esp + 0x28]
cmp cx, 7
je 0x413497
cmp cx, 6
jne case.default.0x41349f
add eax, 0xfffffffb
cmp eax, 3
ja case.default.0x41349f
jmp dword [eax*4 + 0x414338]
mov dword [esp + 0x58], 6
jmp 0x4134b8
mov dword [esp + 0x58], 8
mov esi, 4
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
add eax, 0x200
push 4
imul eax, dword [esp + 0x38]
push eax
push ebp
call fcn.00519a00
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x41353f
lea ecx, [esp + 0x14]
push ecx
push 0x102
push ebp
call fcn.0051a080
lea edx, [esp + 0x1c]
push edx
push 0x115
push ebp
call fcn.0051a080
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
and ebx, 0xffff
and eax, 0xffff
imul ebx, eax
mov esi, dword [esp + 0x58]
add esp, 0x18
mov dword [esp + 0x2c], ebx
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x6c], eax
jmp 0x412fe9
xor ecx, ecx
cmp word [esp + 0x28], 7
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
setne cl
dec ecx
and ecx, 2
push ecx
push esi
push ebx
push edx
push eax
push ebp
call fcn.0051ebf0
add esp, 0x18
test eax, eax
jne 0x413723
push ebx
call fcn.0051e490
add esp, 4
cmp word [esp + 0x28], 0xffff
je 0x413f3b
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0051e010
add esp, 4
test eax, eax
jne 0x413f3b
mov esi, dword [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
push 0x102
push esi
call fcn.0051a080
lea eax, [esp + 0x1c]
push eax
push 0x115
push esi
call fcn.0051a080
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
and ebx, 0xffff
and ecx, 0xffff
imul ebx, ecx
mov esi, dword [esp + 0x58]
add esp, 0x18
mov dword [esp + 0x2c], ebx
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
cmp word [esp + 0x28], 7
mov dword [esp + 0x40], eax
mov dword [esp + 0x6c], eax
je 0x413716
mov ebp, dword [esp + 0x3c]
jmp 0x412fe9
imul esi, dword [esp + 0x34]
shr esi, 0x14
lea eax, [esp + 0xc4]
lea edx, [esi + edi*4 + 0x28]
push edx
push str._n__d_MB_
push eax
call fcn.004d5ee1
mov esi, dword [esp + 0x274]
mov ecx, dword [0x5b5574]
add esp, 0xc
push 0x80
push esi
push 0x50a
push ecx
call dword [sym.imp.USER32.dll_LoadStringW]
lea edx, [esp + 0xc4]
push edx
push esi
call fcn.004d62f1
add esp, 8
mov edx, dword [esp + 0x3c]
push edx
call fcn.005259b0
mov esi, dword [esp + 0x44]
add esp, 4
cmp word [esp + 0x28], 6
jne 0x4142ea
mov eax, dword [esp + 0x88]
test eax, eax
jbe 0x4142ea
mov eax, 0xaaaaaaab
mul dword [esp + 0x34]
mov eax, dword [esp + 0x70]
shr edx, 1
cmp eax, edx
jb 0x4136ad
push esi
call fcn.0041b300
add esp, 4
cmp eax, 0x64
ja 0x4142ea
test esi, esi
je 0x4136bf
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x8c]
push 0
lea ecx, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x284]
lea edx, [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0x26c]
push eax
push 0
push ecx
push 0
push 0
push 0
push edx
call fcn.00409430
add esp, 0x40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret
mov dword [esp + 0x28], 6
jmp 0x41365c
mov eax, dword [esp + 0x34]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x70], ebp
jbe 0x413786
mov eax, dword [esp + 0x20]
mov ecx, eax
xor esi, esi
imul ecx, ebp
test eax, eax
jbe 0x413770
lea ecx, [ebx + ecx*4 + 1]
mov eax, dword [esp + 0x10]
mov dl, byte [ecx + 1]
and eax, 0xffff
add ecx, 4
imul eax, esi
mov byte [eax + edi], dl
mov dl, byte [ecx - 4]
inc eax
inc esi
mov byte [eax + edi], dl
mov dl, byte [ecx - 5]
mov byte [edi + eax + 1], dl
mov eax, dword [esp + 0x20]
cmp esi, eax
jb 0x413744
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x34]
add edi, esi
inc ebp
cmp ebp, ecx
jb 0x413735
mov dword [esp + 0x70], ebp
push ebx
call fcn.0051e490
add esp, 4
jmp 0x413e49
cmp word [esp + 0x10], 4
jne 0x4137b4
cmp word [esp + 0x30], 5
jne 0x4137b4
cmp word [esp + 0x14], 8
jb 0x413f3b
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x3c]
push ebp
call fcn.0051e010
add esp, 4
test eax, eax
je 0x41380b
mov eax, dword [esp + 0x278]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x3c]
push ebx
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
push edi
push ebp
call fcn.00414460
add esp, 0x24
cmp eax, 0xfffffffd
je 0x413f3b
cmp eax, 0xfffffffe
je 0x413f3b
jmp 0x413e49
push ebp
call fcn.0051d9c0
mov esi, eax
mov eax, dword [esp + 0x14]
and eax, 0xffff
add esp, 4
imul eax, dword [esp + 0x20]
cmp esi, eax
jae 0x41382a
mov esi, eax
cmp word [esp + 0x28], 7
jne 0x413837
lea esi, [esi + esi*4]
add esi, esi
mov ebx, dword [esp + 0x84]
cmp ebx, esi
mov dword [esp + 0x50], ebx
jb 0x41384a
mov dword [esp + 0x50], esi
push ebp
call fcn.0051e010
add esp, 4
test eax, eax
jne 0x413865
mov eax, dword [esp + 0x34]
dec eax
imul eax, ebx
add edi, eax
mov dword [esp + 0x18], edi
add esi, 0x2800
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
xor eax, eax
cmp esi, eax
mov dword [esp + 0x54], esi
jne 0x4138ab
mov ecx, dword [esp + 0x268]
mov edx, dword [0x5b5574]
push 0x80
push ecx
push 0x50a
push edx
call dword [sym.imp.USER32.dll_LoadStringW]
jmp 0x413f3b
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x74], eax
cmp ecx, eax
mov dword [esp + 0x70], eax
jbe 0x413e2f
lea eax, [edi + 2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
neg eax
sub esi, edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x5c], esi
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x3c]
xor ebx, ebx
push ebx
push edi
push esi
push ecx
call fcn.0051c1f0
add esp, 0x10
test eax, eax
jge 0x413923
mov eax, dword [esp + 0x28]
cmp ax, 5
je 0x41390b
cmp ax, 1
jne 0x413f33
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x34]
inc eax
shr edx, 2
cmp eax, edx
mov dword [esp + 0x74], eax
ja 0x413f3b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp cx, 3
je 0x41393b
cmp cx, 4
jne 0x413ba0
cmp ax, 8
jne 0x413ba0
cmp dword [esp + 0x4c], ebx
jle 0x413961
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x413de8
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
cmp eax, ebx
jbe 0x413ded
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
xor edi, edi
shr eax, 3
mov dword [esp + 0xa0], eax
jmp 0x413993
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, ecx
and eax, 0xffff
imul eax, edx
cmp word [esp + 0x30], 8
jne 0x413a38
lea ecx, [esp + 0x27]
lea edx, [esp + 0x25]
push ecx
push edx
movsx edx, byte [eax + ebx + 2]
mov dword [esp + 0x4c], edx
lea ecx, [esp + 0x2e]
fild dword [esp + 0x4c]
movsx edx, byte [eax + ebx + 1]
fstp dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], edx
xor edx, edx
fild dword [esp + 0x50]
mov dl, byte [eax + ebx]
push ecx
fstp dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x54], edx
fild dword [esp + 0x54]
push ecx
push ecx
fstp qword [esp + 0xa8]
fld qword [esp + 0xa8]
fdiv qword [str.ffffff]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fstp dword [esp]
call fcn.004104c0
mov al, byte [esp + 0x3f]
add esp, 0x18
mov byte [edi + ebp], al
mov cl, byte [esp + 0x25]
mov byte [edi + esi - 1], cl
mov dl, byte [esp + 0x26]
mov byte [edi + esi], dl
jmp 0x413b7d
cmp cx, 4
jne 0x413b54
mov ecx, dword [esp + 0x25c]
test ecx, ecx
je 0x413b54
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + ebx]
mov cl, byte [eax + ebx + 3]
mov ebp, edx
mov edx, dword [esp + 0x258]
shr edx, 0x10
mov esi, ecx
and edx, 0xff
test esi, esi
jne 0x413a78
mov ecx, edx
jmp 0x413a96
cmp esi, 0xff
jne 0x413a84
mov ecx, ebp
jmp 0x413a96
mov ecx, 0xff
imul ebp, esi
sub ecx, esi
imul ecx, edx
add ecx, ebp
sar ecx, 8
mov edx, dword [esp + 0x38]
mov byte [edi + edx], cl
xor edx, edx
mov dl, byte [eax + ebx + 1]
xor ecx, ecx
mov cl, byte [eax + ebx + 3]
mov ebp, edx
xor edx, edx
mov esi, ecx
mov dl, byte [esp + 0x259]
and edx, 0xff
test esi, esi
jne 0x413ac4
mov ecx, edx
jmp 0x413ae2
cmp esi, 0xff
jne 0x413ad0
mov ecx, ebp
jmp 0x413ae2
mov ecx, 0xff
imul ebp, esi
sub ecx, esi
imul ecx, edx
add ecx, ebp
sar ecx, 8
mov edx, dword [esp + 0x38]
mov byte [edi + edx - 1], cl
xor ecx, ecx
mov cl, byte [eax + ebx + 2]
xor edx, edx
mov dl, byte [eax + ebx + 3]
mov esi, ecx
mov ecx, dword [esp + 0x258]
and ecx, 0xff
test edx, edx
jne 0x413b1a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov eax, ecx
mov ebp, edx
mov byte [edi + edx], al
jmp 0x413b7d
cmp edx, 0xff
jne 0x413b33
mov edx, dword [esp + 0x18]
mov eax, esi
mov esi, dword [esp + 0x38]
mov ebp, edx
mov byte [edi + edx], al
jmp 0x413b7d
mov eax, 0xff
imul esi, edx
sub eax, edx
mov edx, dword [esp + 0x18]
imul eax, ecx
add eax, esi
mov esi, dword [esp + 0x38]
sar eax, 8
mov byte [edi + edx], al
mov ebp, edx
jmp 0x413b7d
mov ecx, dword [esp + 0x278]
test ecx, ecx
je 0x413b68
mov al, byte [eax + ebx + 3]
mov byte [edx + ebp], al
jmp 0x413b7d
mov cl, byte [eax + ebx + 2]
mov byte [edi + ebp], cl
mov dl, byte [eax + ebx + 1]
mov byte [edi + esi - 1], dl
mov al, byte [eax + ebx]
mov byte [edi + esi], al
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x20]
inc eax
add edi, edx
cmp eax, ecx
mov dword [esp + 0x1c], eax
jb 0x41398f
jmp 0x413ded
mov edx, dword [esp + 0x68]
cmp word [edx + 0xe], 0x10
jne 0x413bda
mov eax, dword [esp + 0x20]
xor ecx, ecx
lea edx, [eax + eax]
test edx, edx
jbe 0x413ded
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x5c]
mov dl, byte [esi + eax]
inc ecx
mov byte [eax], dl
mov edx, dword [esp + 0x20]
add edx, edx
inc eax
cmp ecx, edx
jb 0x413bc4
jmp 0x413ded
cmp dword [esp + 0x278], ebx
je 0x413c7a
cmp cx, 5
jne 0x413c28
mov edx, dword [esp + 0x20]
xor eax, eax
cmp edx, ebx
jbe 0x413ded
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x54]
jmp 0x413c09
mov ecx, dword [esp + 0x10]
and ecx, 0xffff
imul ecx, eax
inc eax
mov cl, byte [ecx + esi + 4]
mov byte [eax + edx - 1], cl
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jb 0x413c05
jmp 0x413ded
cmp ax, 8
je 0x413c38
cmp ax, 0x10
jne 0x413ded
and eax, 0xffff
and ecx, 0xffff
shr eax, 3
imul eax, ecx
mov esi, eax
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
jbe 0x413ded
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
lea edx, [esi + edx - 1]
mov al, byte [edx]
add edx, esi
mov byte [ecx + edi], al
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
jb 0x413c65
jmp 0x413ded
cmp word [esp + 0x30], 8
jne 0x413dd7
cmp cx, 3
jne 0x413dd7
cmp ax, 0x10
jne 0x413dd7
cmp dword [esp + 0x2c], 0x30
jne 0x413dd7
mov eax, dword [esp + 0x20]
test eax, eax
jbe 0x413ded
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
mov ecx, eax
lea esi, [eax + 3]
sub ecx, esi
sub eax, esi
add ecx, 5
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov edx, eax
sub edi, esi
sub edx, esi
mov dword [esp + 0xa0], ecx
dec edx
mov ecx, eax
mov dword [esp + 0xc0], edx
mov edx, eax
mov ebp, eax
sub ecx, esi
sub edx, esi
sub ebp, esi
sub eax, esi
inc ecx
add edx, 2
add eax, 3
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x90], eax
lea eax, [esp + 0x27]
lea ecx, [esp + 0x25]
push eax
mov eax, dword [esp + 0xa4]
push ecx
lea edx, [esp + 0x2e]
movsx ecx, byte [eax + esi]
movsx eax, byte [esi]
mov dword [esp + 0x4c], ecx
push edx
fild dword [esp + 0x50]
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
mov eax, dword [esp + 0x28]
push edx
xor edx, edx
fstp dword [esp + 0x54]
mov dl, byte [eax + esi]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x54], edx
push ecx
fild dword [esp + 0x58]
push ecx
fstp qword [esp + 0x5c]
fld qword [esp + 0x5c]
fdiv qword [str.ffffff]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fstp dword [esp]
call fcn.004104c0
mov cl, byte [esp + 0x3e]
mov eax, dword [esp + 0xd8]
mov byte [edi + esi], cl
mov dl, byte [esp + 0x3e]
mov byte [eax + esi], dl
mov cl, byte [esp + 0x3d]
mov eax, dword [esp + 0xd0]
mov byte [esi + ebp], cl
mov dl, byte [esp + 0x3d]
add esp, 0x18
mov byte [eax + esi], dl
mov edx, dword [esp + 0xb4]
mov cl, byte [esp + 0x27]
inc ebx
mov byte [edx + esi], cl
mov ecx, dword [esp + 0x90]
mov al, byte [esp + 0x27]
mov byte [ecx + esi], al
mov eax, dword [esp + 0x20]
add esi, 6
cmp ebx, eax
jb 0x413d0d
jmp 0x413ded
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x5c]
sub ebx, eax
sub esi, eax
mov eax, dword [esp + 0x70]
sub edi, ecx
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x18], ebx
cmp eax, ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x70], eax
jb 0x4138d9
mov esi, dword [esp + 0x54]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp word [esp + 0x28], 7
jne 0x413e73
cmp word [esp + 0x30], 6
jne 0x413e73
push 1
push esi
call fcn.0041a7f0
add esp, 8
mov eax, dword [esp + 0x4c]
test eax, eax
jle 0x413f8e
mov eax, dword [esp + 0x3c]
push eax
call fcn.00412750
mov ebx, eax
mov eax, dword [esp + 0x274]
add esp, 4
test eax, eax
je 0x413e9f
mov dword [eax], 1
mov edi, dword [esp + 0x268]
mov word [edi], 0
mov ecx, dword [0x5b5528]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x413ed1
mov edx, dword [0x5b5528]
push edx
push 0x598118
push edi
call fcn.004d5ee1
add esp, 0xc
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x268]
push eax
mov eax, ebp
mov edx, dword [esp + 0x24c]
sub eax, 8
neg eax
sbb eax, eax
push 0
push ecx
mov ecx, dword [esp + 0x58]
and eax, 0x10
push 1
push 1
add eax, 8
push edx
mov edx, dword [esp + 0xc8]
push eax
push 0
push ebx
push ecx
push edx
push esi
call fcn.00437990
mov edi, eax
add esp, 0x30
test edi, edi
je 0x413f73
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, edi
jmp 0x413fb8
cmp edi, ebx
ja 0x413e49
mov edx, dword [esp + 0x40]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x41365c
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
mov edi, eax
push edi
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x41365c
and ebx, 0x1f0000
cmp ebx, 0x40000
jne 0x413fb8
push 1
push esi
call fcn.0041a7f0
add esp, 8
jmp 0x413fb8
mov eax, dword [esp + 0x26c]
push str.CMYK
push eax
call fcn.004d6acd
add esp, 8
test eax, eax
je 0x413fb8
mov eax, dword [esp + 0x270]
test eax, eax
je 0x413fb8
mov dword [eax], 1
cmp ebp, 0x20
je 0x413fcb
cmp ebp, 0x40
je 0x413fcb
cmp ebp, 0x60
jne 0x4140a8
mov eax, dword [esp + 0xbc]
cmp ax, 3
je 0x413fe8
cmp ax, 2
je 0x413fe8
cmp ax, 1
jne 0x4140a8
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x4140a8
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa4]
xor edi, edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edi
cmp ecx, edi
fild qword [esp + 0x78]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edi
fstp qword [esp + 0x90]
fild qword [esp + 0x78]
fstp qword [esp + 0x78]
jne 0x414061
cmp edx, edi
jne 0x414061
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + 0x6c]
cmp ecx, edi
je 0x41404d
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ecx
mov ecx, dword [edx + 0x70]
cmp ecx, edi
je 0x414061
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x94]
and eax, 0xffff
push ebp
push eax
mov eax, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x9c]
push eax
push ecx
push edx
push esi
call fcn.00414f90
mov edi, eax
add esp, 0x1c
test edi, edi
je 0x4140a8
test esi, esi
je 0x4140a6
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, edi
mov eax, dword [esp + 0x3c]
push eax
call fcn.005259b0
add esp, 4
cmp ebp, 0x10
jne 0x414102
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x414102
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
and ecx, 0xffff
push 0
push ecx
push edx
push eax
push esi
call fcn.00414c50
mov edi, eax
add esp, 0x14
test edi, edi
je 0x414102
test esi, esi
je 0x414100
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, edi
mov eax, dword [esp + 0x58]
mov ebx, 1
cmp ax, bx
je case.default.0x4141e3
and eax, 0xffff
add eax, 0xfffffffe
cmp eax, 6
ja case.default.0x414125
jmp dword [eax*4 + 0x414348]
push 0
push esi
call fcn.0041e640
add esp, 8
jmp case.default.0x414125
push 0
push esi
call fcn.0041e640
push 0
push esi
call fcn.0041e470
add esp, 0x10
jmp case.default.0x414125
push 0
push esi
call fcn.0041e470
add esp, 8
jmp case.default.0x414125
push esi
call fcn.0041e6f0
jmp 0x414171
push esi
call fcn.0041e6f0
jmp 0x41419d
push esi
call fcn.0041e910
add esp, 4
mov edi, eax
test esi, esi
je 0x414188
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0
push edi
mov esi, edi
call fcn.0041e640
add esp, 8
jmp case.default.0x414125
push esi
call fcn.0041e910
add esp, 4
mov edi, eax
test esi, esi
je 0x4141b4
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, edi
mov eax, dword [esp + 0x28]
cmp ax, 7
je 0x4141c6
cmp ax, 6
jne case.default.0x4141e3
cmp dword [esp + 0x6c], ebx
jne case.default.0x4141e3
mov eax, dword [esp + 0x58]
and eax, 0xffff
dec eax
cmp eax, 7
ja case.default.0x4141e3
xor ecx, ecx
mov cl, byte [eax + 0x41436c]
jmp dword [ecx*4 + 0x414364]
push 0
push esi
call fcn.0041e470
jmp 0x4141fc
push 0
push esi
call fcn.0041e640
add esp, 8
cmp word [esp + 0x14], bx
jne 0x41428a
cmp word [esp + 0x30], 0
jne 0x41421b
push esi
call fcn.00414970
add esp, 4
fld dword [esp + 0x60]
call fcn.004d6118
mov ebx, eax
cmp ebx, 0xa
jle 0x41428a
fld dword [esp + 0x64]
call fcn.004d6118
cmp eax, 0xa
jle 0x41428a
lea edx, [eax + eax]
xor edi, edi
cmp ebx, edx
jl 0x41424d
push esi
call fcn.00414a00
add esp, 4
mov edi, eax
fld dword [esp + 0x60]
call fcn.004d6118
fld dword [esp + 0x64]
mov ebx, eax
add ebx, ebx
call fcn.004d6118
cmp eax, ebx
jl 0x414272
push esi
call fcn.00414bb0
add esp, 4
mov edi, eax
test edi, edi
je 0x41428a
test esi, esi
je 0x414288
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, edi
cmp word [esp + 0x28], 6
je 0x413679
mov eax, dword [esp + 0x254]
test eax, eax
je 0x4142ea
mov eax, dword [esp + 0xac]
test eax, eax
jbe 0x4142ea
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x24c]
push edx
push eax
mov eax, dword [esp + 0xb4]
push eax
push ecx
push esi
call fcn.00415c30
mov edi, eax
add esp, 0x18
test edi, edi
je 0x4142ea
test esi, esi
je 0x4142e8
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, edi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret