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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
mov ebp, dword [esp + 0x8c]
xor eax, eax
cmp dword [ebp + 0xc], 0x11
push edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
jae 0x58d5d0
mov eax, dword [ebp]
push str.Segment_too_short
push eax
push 3
push edi
call fcn.00587d80
add esp, 0x10
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.0044abb9
add esp, 0x7c
ret
push esi
lea ecx, [esp + 0x1c]
push ebx
push ecx
call fcn.00588d80
lea edx, [ebx + 0x11]
push edx
call fcn.00587f20
movzx eax, ax
movzx esi, ax
mov eax, dword [ebp]
push esi
push str.text_region_header_flags_0x_04x
push eax
push 0
push edi
mov dword [esp + 0x34], 0x13
call fcn.00587d80
mov eax, esi
and eax, 2
mov dword [esp + 0x5c], eax
mov ecx, esi
shr ecx, 2
and ecx, 3
mov eax, 1
shl eax, cl
mov dword [esp + 0x78], ecx
mov ecx, esi
shr ecx, 4
mov dword [esp + 0x7c], eax
mov eax, esi
and eax, 0x40
mov dword [esp + 0x68], eax
and ecx, 3
mov eax, esi
and eax, 0x200
mov dword [esp + 0x60], eax
mov dword [esp + 0x6c], ecx
mov eax, esi
mov ecx, esi
shr eax, 0xa
shr ecx, 7
mov edx, esi
and eax, 0x1f
and edx, 1
and ecx, 3
add esp, 0x20
cmp eax, 0xf
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], eax
jle 0x58d675
sub eax, 0x20
mov dword [esp + 0x50], eax
and esi, 0x8000
test eax, eax
mov dword [esp + 0x80], esi
je 0x58d69f
mov ecx, dword [ebp]
push eax
push str.text_region_has_SBDSOFFSET__d
push ecx
push 0
push edi
call fcn.00587d80
mov edx, dword [esp + 0x4c]
add esp, 0x14
test edx, edx
je 0x58d6db
lea edx, [ebx + 0x13]
push edx
call fcn.00587f20
movzx eax, ax
add esp, 4
test eax, 0x8000
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x15
je 0x58d718
mov eax, dword [ebp]
push str.reserved_bit_15_of_text_region_huffman_flags_is_not_zero
push eax
push 2
push edi
call fcn.00587d80
add esp, 0x10
jmp 0x58d718
cmp dword [esp + 0x3c], 0
je 0x58d718
test esi, esi
jne 0x58d718
movzx ecx, byte [ebx + 0x13]
mov dl, byte [ebx + 0x14]
mov al, byte [ebx + 0x15]
mov byte [esp + 0x84], cl
movzx ecx, byte [ebx + 0x16]
mov byte [esp + 0x85], dl
mov byte [esp + 0x86], al
mov byte [esp + 0x87], cl
mov dword [esp + 0x14], 0x17
mov esi, dword [esp + 0x14]
add ebx, esi
push ebx
call fcn.00587f00
add esi, 4
add esp, 4
cmp dword [esp + 0x38], 0
mov ebx, eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x14], esi
je 0x58d97f
movzx esi, word [esp + 0x10]
mov eax, esi
and eax, 3
sub eax, 0
je 0x58d77b
sub eax, 1
je 0x58d774
sub eax, 2
je 0x58d766
mov edx, dword [ebp]
push str.text_region_specified_invalid_FS_huffman_table
push edx
jmp 0x58dbc1
mov eax, dword [ebp]
push str.text_region_uses_custom_FS_huffman_table__NYI_
push eax
jmp 0x58dbc1
push 0x6462c4
jmp 0x58d780
push 0x6462b8
push edi
call fcn.0058df10
mov dword [esp + 0x68], eax
mov eax, esi
shr eax, 2
and eax, 3
add esp, 8
cmp eax, 3
ja case.default.0x58d79a
jmp dword [eax*4 + 0x58dbe4]
push 0x646384
push edi
call fcn.0058df10
mov dword [esp + 0x6c], eax
add esp, 8
mov eax, esi
shr eax, 4
and eax, 3
cmp eax, 3
ja case.default.0x58d7c0
jmp dword [eax*4 + 0x58dbf4]
push 0x64648c
jmp 0x58d7a6
push 0x64669c
jmp 0x58d7a6
push str.text_region_uses_custom_DS_huffman_table__NYI_
jmp 0x58dbbd
push 0x646744
push edi
call fcn.0058df10
mov dword [esp + 0x70], eax
add esp, 8
mov eax, esi
shr eax, 6
and eax, 3
sub eax, 0
je 0x58d843
sub eax, 1
je 0x58d83c
sub eax, 2
je 0x58d832
mov eax, dword [ebp]
push str.text_region_specified_invalid_RDW_huffman_table
push eax
jmp 0x58dbc1
push 0x6467ec
jmp 0x58d7e4
push 0x646894
jmp 0x58d7e4
mov edx, dword [ebp]
push str.text_region_uses_custom_DT_huffman_table__NYI_
push edx
jmp 0x58dbc1
push str.text_region_uses_custom_RDW_huffman_table__NYI_
jmp 0x58dbbd
push 0x64699c
jmp 0x58d848
push 0x6468f4
push edi
call fcn.0058df10
mov dword [esp + 0x74], eax
mov eax, esi
shr eax, 8
and eax, 3
add esp, 8
sub eax, 0
je 0x58d88f
sub eax, 1
je 0x58d888
sub eax, 2
je 0x58d87a
mov edx, dword [ebp]
push str.text_region_specified_invalid_RDH_huffman_table
push edx
jmp 0x58dbc1
mov eax, dword [ebp]
push str.text_region_uses_custom_RDH_huffman_table__NYI_
push eax
jmp 0x58dbc1
push 0x64699c
jmp 0x58d894
push 0x6468f4
push edi
call fcn.0058df10
mov dword [esp + 0x78], eax
mov eax, esi
shr eax, 0xa
and eax, 3
add esp, 8
sub eax, 0
je 0x58d8d7
sub eax, 1
je 0x58d8d0
sub eax, 2
je 0x58d8c2
push str.text_region_specified_invalid_RDX_huffman_table
jmp 0x58dbbd
mov edx, dword [ebp]
push str.text_region_uses_custom_RDX_huffman_table__NYI_
push edx
jmp 0x58dbc1
push 0x64699c
jmp 0x58d8dc
push 0x6468f4
push edi
call fcn.0058df10
mov dword [esp + 0x7c], eax
mov eax, esi
shr eax, 0xc
and eax, 3
add esp, 8
sub eax, 0
je 0x58d91f
sub eax, 1
je 0x58d918
sub eax, 2
je 0x58d90e
mov eax, dword [ebp]
push str.text_region_specified_invalid_RDY_huffman_table
push eax
jmp 0x58dbc1
push str.text_region_uses_custom_RDY_huffman_table__NYI_
jmp 0x58dbbd
push 0x64699c
jmp 0x58d924
push 0x6468f4
push edi
call fcn.0058df10
shr esi, 0xe
and esi, 1
add esp, 8
sub esi, 0
mov dword [esp + 0x78], eax
je 0x58d94f
sub esi, 1
jne 0x58d961
mov edx, dword [ebp]
push str.text_region_uses_custom_RSIZE_huffman_table__NYI_
push edx
jmp 0x58dbc1
push 0x646054
push edi
call fcn.0058df10
add esp, 8
mov dword [esp + 0x7c], eax
test dword [esp + 0x10], 0x8000
je 0x58d97f
mov eax, dword [ebp]
push str.text_region_huffman_flags_bit_15_is_set__contrary_to_spec
push eax
push 2
push edi
call fcn.00587d80
add esp, 0x10
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ebx
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [ebp]
push eax
push ecx
push str.text_region:__d_x__d_____d__d___d_symbols
push edx
push 1
push edi
call fcn.00587d80
push ebp
push edi
call fcn.0058a0f0
mov ebx, eax
add esp, 0x2c
test ebx, ebx
je 0x58dbb8
push ebp
push edi
call fcn.0058a140
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x58d9d9
mov eax, dword [ebp]
push str.unable_to_retrive_symbol_dictionaries__previous_parsing_error_
push eax
jmp 0x58dbc1
cmp dword [eax], 0
jne 0x58d9ee
mov ecx, dword [ebp]
push str.unable_to_find_first_referenced_symbol_dictionary_
push ecx
push 2
jmp 0x58dbc3
mov esi, 1
cmp ebx, esi
jle 0x58da1e
cmp dword [eax + esi*4], 0
jne 0x58da17
mov edx, dword [ebp]
push str.unable_to_find_all_referenced_symbol_dictionaries_
push edx
push 2
push edi
call fcn.00587d80
mov eax, dword [esp + 0x20]
add esp, 0x10
mov ebx, esi
add esi, 1
cmp esi, ebx
jl 0x58d9f7
cmp dword [esp + 0x38], 0
jne 0x58da5c
cmp dword [esp + 0x3c], 0
je 0x58da5c
mov eax, dword [esp + 0x80]
neg eax
sbb eax, eax
and eax, 0xffffe400
add eax, 0x2000
mov esi, eax
mov eax, dword [edi]
push esi
push eax
call fcn.00587ce0
push esi
push 0
push eax
mov dword [esp + 0x2c], eax
call fcn.0044dac0
add esp, 0x14
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push edi
call fcn.005890b0
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x40]
mov esi, eax
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
sub ecx, eax
push ecx
add edx, eax
push edx
mov edx, dword [esp + 0x28]
push esi
push ebp
mov ecx, ebx
push edi
lea ebx, [esp + 0x5c]
call fcn.0058c9c0
add esp, 0x24
cmp dword [esp + 0x38], 0
jne 0x58dab9
cmp dword [esp + 0x3c], 0
je 0x58db23
mov eax, dword [esp + 0x18]
mov ecx, dword [edi]
push eax
push ecx
call fcn.00587cf0
add esp, 8
jmp 0x58db23
mov edx, dword [esp + 0x60]
push edx
push edi
call fcn.0058e1f0
mov eax, dword [esp + 0x6c]
push eax
push edi
call fcn.0058e1f0
mov ecx, dword [esp + 0x78]
push ecx
push edi
call fcn.0058e1f0
mov edx, dword [esp + 0x8c]
push edx
push edi
call fcn.0058e1f0
mov eax, dword [esp + 0x98]
push eax
push edi
call fcn.0058e1f0
mov ecx, dword [esp + 0x94]
push ecx
push edi
call fcn.0058e1f0
mov edx, dword [esp + 0xa0]
push edx
push edi
call fcn.0058e1f0
mov eax, dword [esp + 0xb4]
push eax
push edi
call fcn.0058e1f0
add esp, 0x40
mov ecx, dword [esp + 0x10]
mov edx, dword [edi]
push ecx
push edx
call fcn.00587cf0
mov al, byte [ebp + 4]
and al, 0x3f
add esp, 8
cmp al, 4
jne 0x58db54
mov dword [ebp + 0x18], esi
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.0044abb9
add esp, 0x7c
ret
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [ebp]
push eax
push ecx
push str.composing__dx_d_decoded_text_region_onto_page_at___d___d_
push edx
push 0
push edi
call fcn.00587d80
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [edi + 0x40]
imul eax, eax, 0x2c
add eax, dword [edi + 0x48]
push ecx
push edx
push esi
push eax
push edi
call fcn.005888b0
push esi
push edi
call fcn.005892e0
add esp, 0x40
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.0044abb9
add esp, 0x7c
ret
push str.text_region_refers_to_no_symbol_dictionaries_
mov ecx, dword [ebp]
push ecx
push 3
push edi
call fcn.00587d80
mov ecx, dword [esp + 0x98]
add esp, 0x10
pop esi
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.0044abb9
add esp, 0x7c
ret