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

Disassembly:
sub esp, 0x24
push esi
mov esi, eax
mov byte [esp + 4], 0x49
mov byte [esp + 5], 0x44
mov byte [esp + 6], 0x41
mov byte [esp + 7], 0x54
mov dword [esp + 0xc], 0x80
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], 0x88
mov dword [esp + 0x18], 0x22
mov dword [esp + 0x1c], 0xaa
mov dword [esp + 0x20], 0x55
mov dword [esp + 0x24], 0xff
test esi, esi
je 0x418ac0
test byte [esi + 0x64], 0x40
jne 0x418735
call fcn.0041d1a0
cmp byte [esi + 0x11b], 0
je case.default.0x41875c
test byte [esi + 0x68], 2
je case.default.0x41875c
movzx eax, byte [esi + 0x11c]
cmp eax, 6
ja case.default.0x41875c
jmp dword [eax*4 + 0x418ac8]
test byte [esi + 0xdc], 7
je case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
test byte [esi + 0xdc], 7
jne 0x418791
cmp dword [esi + 0xc0], 5
jae case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
mov eax, dword [esi + 0xdc]
and al, 7
cmp al, 4
je case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
mov eax, 3
test byte [esi + 0xdc], al
jne 0x4187c8
cmp dword [esi + 0xc0], eax
jae case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
mov ecx, dword [esi + 0xdc]
and cl, 3
cmp cl, 2
je case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
test byte [esi + 0xdc], 1
jne 0x4187fe
cmp dword [esi + 0xc0], 2
jae case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
test byte [esi + 0xdc], 1
jne case.default.0x41875c
mov eax, esi
pop esi
add esp, 0x24
jmp fcn.0041ce40
test byte [esi + 0x60], 4
jne 0x418849
mov eax, dword [esi + 0x44]
test eax, eax
je 0x418835
push str.Invalid_attempt_to_read_row_data
push esi
call eax
add esp, 8
mov eax, dword [esi + 0x40]
test eax, eax
je 0x418844
push 1
push esi
call eax
add esp, 8
call fcn.00427f35
mov edx, dword [esi + 0xe4]
mov eax, dword [esi + 0xd4]
push ebx
push ebp
push edi
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], eax
lea ebp, [esi + 0x6c]
cmp dword [esi + 0x70], 0
jne 0x4188f8
cmp dword [esi + 0x104], 0
jne 0x4188c8
push 0
mov eax, esi
call fcn.0041bdb0
add esp, 4
mov eax, esi
call fcn.0041bc20
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x104], eax
cmp dword [esi + 0x114], ecx
je 0x4188bf
mov eax, dword [esi + 0x44]
test eax, eax
je 0x4188ab
push str.Not_enough_image_data
push esi
call eax
add esp, 8
mov eax, dword [esi + 0x40]
test eax, eax
je 0x4188ba
push 1
push esi
call eax
add esp, 8
call fcn.00427f35
cmp dword [esi + 0x104], 0
je 0x418874
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0x104]
mov edi, dword [esi + 0xa4]
mov dword [esi + 0x70], eax
mov dword [ebp], edi
cmp eax, ecx
jbe 0x4188e7
mov dword [esi + 0x70], ecx
mov ebx, dword [esi + 0x70]
call fcn.0041bd30
mov edx, dword [esi + 0x70]
sub dword [esi + 0x104], edx
push ebp
call fcn.00421c40
add esp, 4
cmp eax, 1
je 0x418949
test eax, eax
je 0x41893d
mov eax, dword [esi + 0x84]
mov ecx, eax
test eax, eax
jne 0x41891b
mov ecx, str.Decompression_error
mov eax, dword [esi + 0x44]
test eax, eax
je 0x418929
push ecx
push esi
call eax
add esp, 8
mov eax, dword [esi + 0x40]
test eax, eax
je 0x418938
push 1
push esi
call eax
add esp, 8
call fcn.00427f35
cmp dword [esi + 0x7c], 0
jne 0x418861
jmp 0x41898c
cmp dword [esi + 0x7c], 0
jne 0x41895e
cmp dword [esi + 0x70], 0
jne 0x41895e
cmp dword [esi + 0x104], 0
je 0x418984
mov eax, dword [esi + 0x44]
test eax, eax
je 0x418970
push str.Extra_compressed_data
push esi
call eax
add esp, 8
mov eax, dword [esi + 0x40]
test eax, eax
je 0x41897f
push 1
push esi
call eax
add esp, 8
call fcn.00427f35
or dword [esi + 0x60], 8
or dword [esi + 0x64], 0x20
movzx eax, byte [esi + 0x11e]
mov ecx, dword [esi + 0xd8]
mov byte [esi + 0x100], al
movzx eax, byte [esi + 0x122]
mov byte [esi + 0x102], al
movzx eax, byte [esi + 0x11f]
mov byte [esi + 0x101], al
mov al, byte [esi + 0x121]
lea edx, [esi + 0xf8]
mov byte [esi + 0x103], al
cmp al, 8
mov dword [edx], ecx
movzx eax, al
jb 0x4189dc
shr eax, 3
imul eax, ecx
jmp 0x4189e5
imul eax, ecx
add eax, 7
shr eax, 3
mov dword [esi + 0xfc], eax
mov eax, dword [esi + 0xe4]
mov bl, byte [eax]
test bl, bl
je 0x418a17
lea ecx, [eax + 1]
movzx eax, bl
cmp eax, 4
ja 0x418a14
mov edi, dword [esi + 0xe0]
inc edi
push edi
call fcn.0041ccb0
add esp, 4
jmp 0x418a17
mov byte [ecx], 0
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xe4]
mov eax, dword [esi + 0xe0]
inc ecx
push ecx
push edx
push eax
call fcn.0042cb10
add esp, 0xc
cmp dword [esi + 0x68], 0
jne 0x418a44
test dword [esi + 0x64], 0x400000
je 0x418a4b
mov ebx, esi
call fcn.00418fb0
cmp byte [esi + 0x11b], 0
pop edi
pop ebp
pop ebx
je 0x418a83
test byte [esi + 0x68], 2
je 0x418a83
cmp byte [esi + 0x11c], 6
jae 0x418a6d
mov eax, esi
call fcn.0041c860
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x418a9a
movzx ecx, byte [esi + 0x11c]
mov eax, dword [esp + ecx*4 + 0xc]
push eax
jmp 0x418a90
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x418a9a
push 0xff
mov eax, esi
call fcn.0041c570
add esp, 4
mov eax, esi
call fcn.0041ce40
mov eax, dword [esi + 0x164]
test eax, eax
je 0x418ac0
movzx ecx, byte [esi + 0x11c]
mov edx, dword [esi + 0xdc]
push ecx
push edx
push esi
call eax
add esp, 0xc
pop esi
add esp, 0x24
ret