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

Disassembly:
mov eax, 0x203c
call fcn.0067c7e0
mov eax, dword [0x75a1c0]
xor eax, esp
mov dword [esp + 0x2038], eax
mov eax, dword [esp + 0x2048]
xor ecx, ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2050]
xor edx, edx
push edi
mov edi, dword [esp + 0x2050]
xor ebp, ebp
push eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], ecx
call fcn.0046a160
add esp, 4
lea ebx, [esi + 0x4b80]
test byte [esi + 0x38], 4
jne 0x489d00
push 0x6e8
push ebp
push ebx
call fcn.0067ddd0
lea eax, [esi + 0x4be4]
push 0x20
push eax
call fcn.004a3640
add esp, 0x14
test byte [esi + 0x2c], 1
je 0x489cc7
mov ecx, dword [esi + 0x78]
add ecx, dword [esi + 0x60]
mov eax, dword [esi + 0x7c]
adc eax, dword [esi + 0x64]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], eax
jmp 0x489ccd
mov dword [esi + 0x78], ebp
mov dword [esi + 0x7c], ebp
push esi
mov dword [esi + 0x60], ebp
mov dword [esi + 0x64], ebp
mov dword [esi + 0x68], ebp
mov dword [esi + 0x6c], ebp
mov dword [esi + 0x70], ebp
mov dword [esi + 0x74], ebp
mov dword [esi + 0x5250], ebp
mov dword [esi + 0x5254], ebp
mov dword [esi + 0x5258], ebp
mov dword [esi + 0x525c], ebp
call fcn.004886b0
add esp, 4
mov eax, dword [esp + 0x205c]
test al, 1
je 0x489d3e
xor ecx, ecx
lea eax, [esp + 0x1c]
push ecx
push eax
push edi
mov dword [esp + 0x34], ecx
call fcn.0048b340
add esp, 0xc
cmp eax, 1
jne 0x489d2f
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
jmp 0x489d37
test eax, eax
je 0x489f86
mov eax, dword [esp + 0x205c]
test al, 2
je 0x48a1a6
push 0
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0048b340
add esp, 0xc
cmp eax, 1
jne 0x489d61
mov eax, dword [esp + 0x1c]
jmp 0x489d6b
test eax, eax
je 0x489f86
xor eax, eax
mov dword [esi + 0x4b80], eax
lea eax, [esp + 0x1c]
push 0
push eax
push edi
call fcn.0048b340
add esp, 0xc
cmp eax, 1
jne 0x489d90
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebx
jmp 0x489d9a
test eax, eax
je 0x489f86
xor ebx, ebx
push 0
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0048b340
add esp, 0xc
test eax, eax
je 0x489f86
test bl, 8
je 0x489dc3
push str.Files_with_unknown_unpacked_size_are_not_supported
push 0x16
jmp 0x48a1af
xor cl, cl
mov eax, ebx
and al, 1
cmp cl, al
mov al, byte [esi + 0x4b98]
push 0
sbb cl, cl
and al, 0xf7
and cl, 8
or cl, al
lea eax, [esp + 0x34]
push eax
push edi
mov byte [esi + 0x4b98], cl
call fcn.0048b340
add esp, 0xc
cmp eax, 1
jne 0x489dff
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x24], ebp
jmp 0x489e07
test eax, eax
je 0x489f86
test bl, 2
je 0x489e2a
lea eax, [esp + 0x38]
push eax
push edi
call fcn.0048b2c0
add esp, 8
test eax, eax
je 0x489f86
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
test bl, 4
je 0x489e4d
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.0048b2c0
add esp, 8
test eax, eax
je 0x489f86
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
push 0
lea eax, [esp + 0x34]
push eax
push edi
call fcn.0048b340
add esp, 0xc
cmp eax, 1
jne 0x489e6c
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
jmp 0x489e76
test eax, eax
je 0x489f86
xor ebx, ebx
mov cl, byte [esi + 0x4b98]
mov eax, ebx
shr eax, 7
mov edx, ebx
and eax, 7
and edx, 0x3f
test cl, 8
jbe 0x489e92
xor ebx, ebx
jmp 0x489ea7
mov ecx, ebx
mov ebx, 0x20000
shr ecx, 0xa
and ecx, 0xf
shl ebx, cl
mov cl, byte [esi + 0x4b98]
test dword [esp + 0x18], 0x40
mov dword [esi + 0x44], eax
lea eax, [edx + 0x32]
mov dword [esi + 0x48], eax
seta al
and cl, 0xfe
or al, cl
test dword [esp + 0x18], 0x40
mov byte [esi + 0x4b98], al
je 0x489ee0
cmp dword [esi + 0x50], 0
jne 0x489ee0
push str.Declared_solid_file__but_no_window_buffer_initialized_yet.
jmp 0x48a1ad
cmp ebx, 0x4000000
ja 0x48a19f
test al, 8
jne 0x489ef8
test ebx, ebx
je 0x48a19f
test al, 1
jbe 0x489f14
mov eax, dword [esi + 0x5260]
test eax, eax
jle 0x489f14
cmp eax, ebx
je 0x489f14
push str.Window_size_for_this_solid_file_doesnt_match_the_window_size_used_in_previous_solid_file.
jmp 0x48a1ad
cmp dword [esi + 0x4c], ebx
jge 0x489f3d
mov eax, dword [esi + 0x50]
test eax, eax
je 0x489f3d
push ebx
push eax
call fcn.006883c0
add esp, 8
test eax, eax
jne 0x489f3a
push str.Not_enough_memory_when_trying_to_realloc_the_window_buffer.
push 0x16
jmp 0x48a1af
mov dword [esi + 0x50], eax
mov al, byte [esi + 0x4b98]
mov dword [esi + 0x4c], ebx
test al, 1
jbe 0x489f59
cmp dword [esi + 0x5260], 0
jne 0x489f59
mov dword [esi + 0x5260], ebx
test ebx, ebx
je 0x489f60
dec ebx
jmp 0x489f62
xor ebx, ebx
and al, 0xfd
mov dword [esi + 0x5c], ebx
mov byte [esi + 0x4b98], al
lea eax, [esp + 0x30]
push 0
push eax
push edi
call fcn.0048b340
add esp, 0xc
cmp eax, 1
je 0x489f90
test eax, eax
jne 0x489f9c
mov eax, 1
jmp 0x48a1bd
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x48a06c
mov ebx, dword [esp + 0x24]
mov ebp, ebx
test bl, 0x10
je 0x489fbc
and ebp, 1
mov eax, 0x416d
mov ecx, 0x41ed
cmove eax, ecx
movzx eax, ax
jmp 0x489fcb
mov eax, 0x8124
and ebp, 1
jne 0x489fcb
mov eax, 0x81a4
push eax
push dword [esp + 0x18]
call fcn.0046acf0
add esp, 8
test bl, 7
je 0x48a04d
push 0x16
call fcn.006883b5
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x48a04d
mov ecx, ebx
test ebp, ebp
je 0x48a003
mov dword [ebx], 0x6e6f6472
lea ecx, [ebx + 7]
mov dword [ebx + 4], 0x2c796c
mov eax, dword [esp + 0x24]
test al, 2
je 0x48a01b
mov dword [ecx], 0x64646968
mov dword [ecx + 4], 0x2c6e65
add ecx, 7
test al, 4
je 0x48a02f
mov dword [ecx], 0x74737973
mov dword [ecx + 4], 0x2c6d65
add ecx, 7
cmp ecx, ebx
jbe 0x48a044
push ebx
push dword [esp + 0x18]
mov byte [ecx - 1], 0
call fcn.0046a4b0
add esp, 8
push ebx
call fcn.00687807
add esp, 4
mov ebx, dword [esp + 0x14]
push 0
lea eax, [esp + 0x34]
push eax
push edi
call fcn.0048b340
add esp, 0xc
cmp eax, 1
jne 0x48a085
mov ebp, dword [esp + 0x30]
jmp 0x48a08f
cmp eax, 1
jne 0x48a18c
mov ebx, dword [esp + 0x14]
push ebp
push ebx
call fcn.0046acf0
add esp, 8
jmp 0x48a051
test eax, eax
je 0x489f86
xor ebp, ebp
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0xffffffff
push eax
push ebp
push edi
call fcn.00468650
add esp, 0xc
test eax, eax
je 0x489f86
cmp ebp, 0x7ff
jbe 0x48a0c0
push str.Filename_is_too_long
jmp 0x48a1ad
test ebp, ebp
jne 0x48a0ce
push str.No_filename_specified
jmp 0x48a1ad
push ebp
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0067d850
push 0
push ebp
push edi
mov byte [esp + ebp + 0x60], 0
call fcn.00487da0
add esp, 0x18
test eax, eax
jne 0x489f86
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.0046b060
mov eax, dword [esp + 0x30]
add esp, 8
test eax, eax
jle 0x48a11d
push eax
push esi
push ebx
push edi
call fcn.0048a1e0
add esp, 0x10
test eax, eax
jne 0x48a1bd
mov eax, dword [esi + 0x5250]
or eax, dword [esi + 0x5254]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x4b84], ecx
jne 0x48a143
push dword [esp + 0x20]
push ecx
push ebx
call fcn.0046ae30
add esp, 0xc
mov eax, dword [esp + 0x2c]
test al, 2
je 0x48a160
push 0
push 0
push dword [esp + 0x48]
push ebx
call fcn.0046ad10
mov eax, dword [esp + 0x3c]
add esp, 0x10
test al, 4
je 0x48a16e
mov eax, dword [esp + 0x44]
mov dword [esi + 0x4bbc], eax
mov al, byte [esi + 0x38]
test al, 4
jne 0x48a17c
and al, 0xfe
or al, 0xa
mov byte [esi + 0x38], al
mov al, byte [esi + 0x20]
xor cl, cl
and al, 2
cmp cl, al
sbb eax, eax
and eax, 0xfffffff6
jmp 0x48a1bd
push eax
push str.Unsupported_Host_OS:_0x_x
push 0x2a
push edi
call fcn.00469db0
add esp, 0x10
jmp 0x48a1b8
push str.Declared_dictionary_size_is_not_supported.
jmp 0x48a1ad
mov dword [ebx], ebp
push str.no_data_found_in_file_service_block
push 0x2a
push edi
call fcn.00469db0
add esp, 0xc
mov eax, 0xffffffe2
mov ecx, dword [esp + 0x2048]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0067bc9f
add esp, 0x203c
ret