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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1cc
mov ebx, dword [esp + 0x1e4]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x433ae6
mov dword [esp + 8], 1
mov dword [esp], 0xd
lea esi, [ebx + 0x27]
mov dword [esp + 4], esi
call sym.__gfortran_string_index
test eax, eax
jle 0x40c652
lea ebp, [esp + 0x68]
lea eax, [ebx + 0x34]
mov dword [esp + 0x30], 0xffffff9d
mov dword [esp + 0x70], str.C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 0x74], 0x379
mov dword [esp], ebp
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0xd
mov dword [esp + 0x98], 0
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x68], 0x4084
call sym.__gfortran_st_read
lea edx, [esp + 0x30]
mov dword [esp + 8], 4
mov dword [esp], ebp
mov dword [esp + 4], edx
call sym.__gfortran_transfer_integer
mov dword [esp], ebp
call sym.__gfortran_st_read_done
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffff9d
je 0x40c652
lea edi, [ecx + 0x1e]
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
js 0x40cb80
cmp eax, 0x1f
mov edx, 0x1f
cmovg eax, edx
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x44]
lea edi, [esp + 0x4f]
mov dword [esp + 0x10], 6
mov dword [esp + 0xc], 0xd
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
call sym._chkcall_
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x40c660
add esp, 0x1cc
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [esp + 0x48]
lea ecx, [esp + 0x55]
lea edi, [ebx + 0x1a]
mov dword [esp + 0x10], 6
mov dword [esp + 0xc], 0xd
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], edi
call sym._chkcall_
mov eax, dword [esp + 0x48]
test eax, eax
je 0x40c652
mov ecx, dword [esp + 0x1ec]
mov edx, dword [esp + 0x1e8]
mov dword [ecx], 1
mov dword [edx], 0
mov dword [esp + 8], 0xd
mov dword [esp + 4], 0x43ade8
mov dword [esp], ebx
call sym.___packjt77_MOD_pack28
mov dword [esp], edi
mov dword [esp + 8], 0xd
lea edi, [esp + 0x3c]
mov dword [esp + 4], 0x43ade4
call sym.___packjt77_MOD_pack28
lea eax, [esp + 0x38]
lea edx, [esp + 0x34]
mov dword [esp], esi
mov dword [esp + 0x10], 0xd
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call sym.___packjt77_MOD_save_hash_call
mov dword [esp + 4], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x433ae6
mov dword [esp + 8], 1
mov dword [esp], 0xd
call sym.__gfortran_string_index
lea esi, [eax - 1]
cmp esi, 0xd
jg 0x40cdb4
mov ecx, eax
mov edi, 0
mov edx, 0xd
sub ecx, 2
lea esi, [ebx + 0x28]
cmovs ecx, edi
cmp ecx, 0xd
cmovbe edx, ecx
cmp edx, 4
jae 0x40cb90
lea edi, [esp + 0x5f]
test edx, edx
mov dword [esp + 0x28], edi
je 0x40c77a
movzx ebx, byte [ebx + 0x28]
test dl, 2
mov byte [esp + 0x5b], bl
jne 0x40cda5
cmp eax, 0xe
jle 0x40cca0
lea eax, [esp + 0x5b]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
mov ebx, 0x26
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov esi, eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x10], 0
sub esi, 1
mov dword [esp + 8], 1
mov dword [esp + 4], 0x41c7a0
mov dword [esp + 0xc], eax
mov dword [esp], 0x26
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
imul ebx
mov dword [esp + 8], 1
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
mov esi, eax
lea eax, [ecx - 1]
mov edi, edx
cdq
add esi, eax
lea eax, [esp + 0x5d]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
imul edi, edi, 0x26
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x5e]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 4], 0x41c7a0
mul ebx
lea esi, [ecx - 1]
mov dword [esp], 0x26
imul edi, edi, 0x26
mov dword [esp + 0x10], 0
mov dword [esp + 8], 1
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
mov eax, dword [esp + 0x28]
adc edi, edx
imul edi, edi, 0x26
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x60]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
imul edi, edi, 0x26
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x61]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
imul edi, edi, 0x26
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x62]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
imul edi, edi, 0x26
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x63]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
imul edi, edi, 0x26
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x64]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp + 0x10], 0
mul ebx
lea esi, [ecx - 1]
mov dword [esp + 8], 1
imul edi, edi, 0x26
mov dword [esp + 4], 0x41c7a0
mov dword [esp], 0x26
add edx, edi
mov edi, esi
sar edi, 0x1f
add esi, eax
lea eax, [esp + 0x65]
adc edi, edx
mov dword [esp + 0xc], eax
call sym.__gfortran_string_index
mov ecx, eax
mov eax, esi
mov dword [esp], ebp
mul ebx
sub ecx, 1
mov dword [esp + 0x70], str.C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
imul edi, edi, 0x26
mov dword [esp + 0x74], 0x38c
mov dword [esp + 0xb0], 0x4d
mov dword [esp + 0x98], 0
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x9c], str._2b28.28_b10.10_b5.5_2b3.3_
mov dword [esp + 0xa0], 0x1b
add edx, edi
mov edi, ecx
mov dword [esp + 0x68], 0x5000
sar edi, 0x1f
add ecx, eax
mov ebx, edi
adc ebx, edx
imul edi, ebx, 0xf4bf0973
imul eax, ecx, 0xa
add edi, eax
mov eax, 0xf4bf0973
mul ecx
add edx, edi
mov eax, edx
shr eax, 0x16
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0xac], eax
call sym.__gfortran_st_write
mov dword [esp + 8], 4
mov dword [esp + 4], 0x43ade8
mov dword [esp], ebp
call sym.__gfortran_transfer_integer_write
mov dword [esp + 8], 4
mov dword [esp + 4], 0x43ade4
mov dword [esp], ebp
call sym.__gfortran_transfer_integer_write
lea eax, [esp + 0x34]
mov dword [esp + 8], 4
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym.__gfortran_transfer_integer_write
lea eax, [esp + 0x40]
mov dword [esp + 8], 4
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym.__gfortran_transfer_integer_write
mov eax, dword [esp + 0x1ec]
mov dword [esp + 8], 4
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym.__gfortran_transfer_integer_write
mov eax, dword [esp + 0x1e8]
mov dword [esp + 8], 4
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym.__gfortran_transfer_integer_write
mov dword [esp], ebp
call sym.__gfortran_st_write_done
jmp 0x40c652
mov dword [esp + 0x40], 0
jmp 0x40c622
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x5b], edi
mov ebx, dword [esi + edx - 4]
lea edi, [esp + 0x5b]
mov dword [esp + edx + 0x57], ebx
lea ebx, [esp + 0x5f]
mov dword [esp + 0x28], ebx
and ebx, 0xfffffffc
sub edi, ebx
add edx, edi
sub esi, edi
and edx, 0xfffffffc
cmp edx, 4
jb 0x40c77a
mov dword [esp + 0x2c], edx
lea edi, [edx - 1]
mov edx, dword [esi]
shr edi, 2
mov dword [ebx], edx
and edi, 7
mov edx, 4
cmp edx, dword [esp + 0x2c]
jae 0x40c77a
test edi, edi
je 0x40cc4d
cmp edi, 1
je 0x40cc3a
cmp edi, 2
je 0x40cc31
cmp edi, 3
je 0x40cc28
cmp edi, 4
je 0x40cc1f
cmp edi, 5
je 0x40cc16
cmp edi, 6
je 0x40cc0d
mov edi, dword [esi + 4]
mov edx, 8
mov dword [ebx + 4], edi
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
add edx, 4
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
add edx, 4
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
add edx, 4
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
add edx, 4
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
add edx, 4
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
add edx, 4
cmp edx, dword [esp + 0x2c]
jae 0x40c77a
mov edi, dword [esi + edx]
mov dword [ebx + edx], edi
mov edi, dword [esi + edx + 4]
mov dword [ebx + edx + 4], edi
mov edi, dword [esi + edx + 8]
mov dword [ebx + edx + 8], edi
mov edi, dword [esi + edx + 0xc]
mov dword [ebx + edx + 0xc], edi
mov edi, dword [esi + edx + 0x10]
mov dword [ebx + edx + 0x10], edi
mov edi, dword [esi + edx + 0x14]
mov dword [ebx + edx + 0x14], edi
mov edi, dword [esi + edx + 0x18]
mov dword [ebx + edx + 0x18], edi
mov edi, dword [esi + edx + 0x1c]
mov dword [ebx + edx + 0x1c], edi
add edx, 0x20
cmp edx, dword [esp + 0x2c]
jb 0x40cc4d
jmp 0x40c77a
mov eax, 0xd
lea esi, [esp + 0x5b]
mov ebx, 0x20202020
sub eax, ecx
add ecx, esi
cmp eax, 4
jae 0x40cce0
test eax, eax
je 0x40c783
test al, 2
mov byte [ecx], 0x20
je 0x40c783
mov word [ecx + eax - 2], 0x2020
jmp 0x40c783
lea edx, [ecx + 4]
mov dword [ecx], 0x20202020
mov dword [ecx + eax - 4], 0x20202020
and edx, 0xfffffffc
sub ecx, edx
add eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jb 0x40c783
lea ecx, [eax - 1]
mov esi, eax
mov edi, eax
mov eax, 4
mov dword [edx], 0x20202020
shr ecx, 2
and ecx, 7
cmp eax, esi
jae 0x40c783
test ecx, ecx
je 0x40cd7a
cmp ecx, 1
je 0x40cd6c
cmp ecx, 2
je 0x40cd66
cmp ecx, 3
je 0x40cd60
cmp ecx, 4
je 0x40cd5a
cmp ecx, 5
je 0x40cd54
cmp ecx, 6
je 0x40cd4e
mov dword [edx + 4], ebx
mov eax, 8
mov dword [edx + eax], ebx
add eax, 4
mov dword [edx + eax], ebx
add eax, 4
mov dword [edx + eax], ebx
add eax, 4
mov dword [edx + eax], ebx
add eax, 4
mov dword [edx + eax], ebx
add eax, 4
mov dword [edx + eax], ebx
add eax, 4
cmp eax, edi
jae 0x40c783
mov dword [edx + eax], ebx
mov dword [edx + eax + 4], ebx
mov dword [edx + eax + 8], ebx
mov dword [edx + eax + 0xc], ebx
mov dword [edx + eax + 0x10], ebx
mov dword [edx + eax + 0x14], ebx
mov dword [edx + eax + 0x18], ebx
mov dword [edx + eax + 0x1c], ebx
add eax, 0x20
cmp eax, edi
jb 0x40cd7a
jmp 0x40c783
movzx esi, word [esi + edx - 2]
mov word [esp + edx + 0x59], si
jmp 0x40c77a
mov dword [esp + 0xc], 0xd
mov dword [esp + 8], esi
mov dword [esp + 4], str.Substring_out_of_bounds:_upper_bound___ld__of_w_exceeds_string_length___ld_
mov dword [esp], str.At_line_906_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
call sym.__gfortran_runtime_error_at
lea esi, [esi]
lea edi, [edi]