Function at 0x409980
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 + 0xc], 0x434033
mov dword [esp + 8], 3
mov dword [esp], 0xd
mov dword [esp + 4], ebx
lea ebp, [ebx + 0xd]
call sym.__gfortran_compare_string
test eax, eax
jne 0x409aa0
lea esi, [ebx + 0x1a]
mov eax, ebp
lea edx, [esp + 0x54]
lea ecx, [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 0x10], 6
mov dword [esp + 0xc], 0xd
lea edi, [esp + 0x58]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call sym._chkcall_
lea eax, [esp + 0x62]
mov dword [esp], esi
mov dword [esp + 0x10], 6
mov dword [esp + 0xc], 0xd
mov dword [esp + 8], edi
mov dword [esp + 4], eax
call sym._chkcall_
mov esi, dword [esp + 0x54]
test esi, esi
je 0x409a95
mov edx, dword [esp + 0x58]
test edx, edx
je 0x409a95
mov ecx, dword [esp + 0x1e0]
mov edi, dword [ecx]
lea esi, [edi - 1]
mov dword [esp + 0x24], edi
test esi, esi
jle 0x40a0aa
cmp esi, 0x13
jg 0x40a0ca
sub edi, 2
lea eax, [edi + edi*2]
lea edi, [edi + eax*4]
lea eax, [esp + 0x3a]
movzx edx, word [ebx + edi]
movzx ecx, byte [ebx + edi + 2]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x43407f
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], 3
mov dword [esp + 0x20], eax
mov word [esp + 0x3a], dx
mov byte [esp + 0x3c], cl
call sym.__gfortran_string_index
test eax, eax
mov edx, dword [esp + 0x20]
jle 0x409ab0
add esp, 0x1cc
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, ebp
mov eax, ebx
jmp 0x4099c1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x434080
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], 3
call sym.__gfortran_string_index
test eax, eax
jg 0x409a95
cmp byte [esp + 0x3a], 0x35
jne 0x409af4
movzx ecx, byte [esp + 0x3b]
sub ecx, 0x32
cmp cl, 7
jbe 0x409fb2
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x24]
mov edi, 0x2020
mov word [esp + 0x3d], di
mov byte [esp + 0x3f], 0x20
lea edx, [esi + eax*4]
add edx, ebx
test ecx, ecx
mov dword [esp + 0x20], edx
jle 0x40a0ea
cmp ecx, 0x13
mov esi, 1
jg 0x40a086
mov eax, dword [esp + 0x20]
mov dword [esp + 8], 0xd
xor edi, edi
mov dword [esp + 4], str.AL_AK_AZ_AR_CA_CO_CT_DE_FL_GA_HI_ID_IL_IN_IA_KS_KY_LA_ME_MD_MA_MI_MN_MS_MO_MT_NE_NV_NH_NJ_NM_NY_NC_ND_OH_OK_OR_PA_RI_SC_SD_TN_TX_UT_VT_VA_WA_WV_WI_WY_NB_NS_QC_ON_MB_SK_AB_BC_NWTNF_LB_NU_YT_PEIDC_DR_FR_GD_GR_OV_ZH_ZL_X01X02X03X04X05X06X07X08X09X10X11X12X13X14X15X16X17X18X19X20X21X22X23X24X25X26X27X28X29X30X31X32X33X34X35X36X37X38X39X40X41X42X43X44X45X46X47X48X49X50X51X52X53X54X55X56X57X58X59X60X61X62X63X64X65X66X67X68X69X70X71X72X73X74X75X76X77X78X79X80X81X82X83X84X85X86X87X88X89X90X91X92X93X94X95X96X97X98X99
mov dword [esp], 3
mov dword [esp + 0xc], eax
call sym.__gfortran_compare_string
test eax, eax
je 0x409c92
mov edx, 2
mov ecx, 0x41cdc3
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1e4], ebx
mov ebp, edx
mov ebx, ecx
jmp 0x409c4d
mov eax, dword [esp + 0x20]
lea edx, [ebx + 3]
lea edi, [ebp + 1]
mov dword [esp + 8], 0xd
mov dword [esp], 3
mov dword [esp + 4], edx
mov dword [esp + 0x28], edx
mov ebp, edi
mov dword [esp + 0xc], eax
lea esi, [edi - 1]
call sym.__gfortran_compare_string
test eax, eax
je 0x409c83
mov ecx, dword [esp + 0x20]
lea edx, [ebx + 6]
mov dword [esp + 8], 0xd
mov dword [esp], 3
add ebp, 1
mov dword [esp + 4], edx
lea esi, [ebp - 1]
mov dword [esp + 0xc], ecx
call sym.__gfortran_compare_string
test eax, eax
je 0x409c83
mov edx, dword [esp + 0x20]
lea eax, [ebx + 9]
mov dword [esp + 8], 0xd
mov dword [esp], 3
lea ebp, [edi + 2]
lea esi, [edi + 1]
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
call sym.__gfortran_compare_string
test eax, eax
je 0x409c83
mov ecx, dword [esp + 0x20]
add ebx, 0xc
mov dword [esp + 8], 0xd
mov dword [esp + 4], ebx
mov dword [esp], 3
lea ebp, [edi + 3]
lea esi, [edi + 2]
mov dword [esp + 0xc], ecx
call sym.__gfortran_compare_string
test eax, eax
je 0x409c83
mov ebx, dword [esp + 0x28]
lea ebp, [edi + 4]
add ebx, 0xc
cmp ebp, 0xac
je 0x40a05e
cmp dword [esp + 0x24], 0x13
jg 0x40a086
mov edi, dword [esp + 0x20]
mov dword [esp + 8], 0xd
lea esi, [ebp - 1]
mov dword [esp + 4], ebx
mov dword [esp], 3
mov dword [esp + 0xc], edi
call sym.__gfortran_compare_string
test eax, eax
jne 0x409b75
mov edi, esi
mov ebx, dword [esp + 0x1e4]
mov esi, ebp
mov ebp, dword [esp + 0x2c]
lea eax, [edi + edi*2]
mov edi, dword [esp + 0x50]
add esi, 0x1f40
mov dword [esp + 0x4c], esi
movzx edx, word [eax + str.AL_AK_AZ_AR_CA_CO_CT_DE_FL_GA_HI_ID_IL_IN_IA_KS_KY_LA_ME_MD_MA_MI_MN_MS_MO_MT_NE_NV_NH_NJ_NM_NY_NC_ND_OH_OK_OR_PA_RI_SC_SD_TN_TX_UT_VT_VA_WA_WV_WI_WY_NB_NS_QC_ON_MB_SK_AB_BC_NWTNF_LB_NU_YT_PEIDC_DR_FR_GD_GR_OV_ZH_ZL_X01X02X03X04X05X06X07X08X09X10X11X12X13X14X15X16X17X18X19X20X21X22X23X24X25X26X27X28X29X30X31X32X33X34X35X36X37X38X39X40X41X42X43X44X45X46X47X48X49X50X51X52X53X54X55X56X57X58X59X60X61X62X63X64X65X66X67X68X69X70X71X72X73X74X75X76X77X78X79X80X81X82X83X84X85X86X87X88X89X90X91X92X93X94X95X96X97X98X99]
movzx ecx, byte [eax + 0x41cdc2]
mov word [esp + 0x3d], dx
mov byte [esp + 0x3f], cl
lea esi, [esp + 0x3d]
mov dword [esp], 3
mov dword [esp + 4], esi
call sym.__gfortran_string_len_trim
test edi, edi
jg 0x409cda
test eax, eax
je 0x409a95
mov eax, dword [esp + 0x1ec]
mov edi, dword [esp + 0x1e8]
mov dword [esp + 0x48], 0
mov dword [edi], 3
mov dword [eax], 0
mov dword [esp + 0xc], 0x434033
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0xd
call sym.__gfortran_compare_string
test eax, eax
je 0x409f64
mov ebp, ebx
mov dword [esp + 0x24], 4
mov esi, 0xd
mov edx, 0x1a
mov edi, 3
mov dword [esp], ebp
add esi, ebx
mov dword [esp + 8], 0xd
mov dword [esp + 4], 0x43ade8
mov dword [esp + 0x20], edx
call sym.___packjt77_MOD_pack28
mov dword [esp + 8], 0xd
mov dword [esp + 4], 0x43ade4
mov dword [esp], esi
call sym.___packjt77_MOD_pack28
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x40], 0
cmp word [ebx + ebp], 0x2052
jne 0x409f90
mov edi, dword [esp + 0x24]
mov dword [esp + 0x40], 1
mov dword [esp + 0x70], str.C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 0x74], 0x504
lea ecx, [edi - 1]
lea edi, [esp + 0x44]
mov dword [esp + 0xb0], 0xd
mov dword [esp + 0x98], 0
mov dword [esp + 0x6c], 0xffffffff
lea eax, [ecx + ecx*2]
mov dword [esp + 0x68], 0x4084
lea esi, [ecx + eax*4]
add ebx, esi
mov dword [esp + 0xac], ebx
lea ebx, [esp + 0x68]
mov dword [esp], ebx
call sym.__gfortran_st_read
mov dword [esp + 8], 4
mov dword [esp + 4], edi
mov dword [esp], ebx
call sym.__gfortran_transfer_integer
mov dword [esp], ebx
call sym.__gfortran_st_read_done
mov edx, dword [esp + 0x68]
and edx, 3
cmp edx, 1
je 0x409a95
mov ebp, dword [esp + 0x44]
mov esi, 0x66666667
lea ecx, [ebp - 0x1fd]
mov eax, ecx
sar ecx, 0x1f
imul esi
sar edx, 2
sub edx, ecx
sub edx, 2
js 0x409fa5
cmp edx, 7
mov ebp, 7
cmovg edx, ebp
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x1f0]
lea esi, [esp + 0x48]
mov dword [esp], ebx
mov dword [esp + 0x70], str.C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 0x74], 0x50a
mov dword [esp + 0xb0], 0x4d
mov dword [esp + 0x98], 0
mov dword [esp + 0xac], ecx
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x9c], str._b1_2b28.28_b1_b3.3_b13.13_b3.3_At_line_1215_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 0xa0], 0x20
mov dword [esp + 0x68], 0x5000
call sym.__gfortran_st_write
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym.__gfortran_transfer_integer_write
mov dword [esp + 8], 4
mov dword [esp + 4], 0x43ade8
mov dword [esp], ebx
call sym.__gfortran_transfer_integer_write
mov dword [esp + 8], 4
mov dword [esp + 4], 0x43ade4
mov dword [esp], ebx
call sym.__gfortran_transfer_integer_write
lea eax, [esp + 0x40]
mov dword [esp + 8], 4
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.__gfortran_transfer_integer_write
mov dword [esp + 4], edi
lea edi, [esp + 0x4c]
mov dword [esp + 8], 4
mov dword [esp], ebx
call sym.__gfortran_transfer_integer_write
mov dword [esp + 8], 4
mov dword [esp + 4], edi
mov dword [esp], ebx
call sym.__gfortran_transfer_integer_write
mov edx, dword [esp + 0x1e8]
mov dword [esp + 8], 4
mov dword [esp], ebx
mov dword [esp + 4], edx
call sym.__gfortran_transfer_integer_write
mov dword [esp], ebx
call sym.__gfortran_st_write_done
jmp 0x409a95
mov dword [esp + 0x48], 1
mov dword [esp + 0x24], 5
mov esi, 0x1a
mov edx, 0x27
mov edi, 4
jmp 0x409d3d
mov dword [esp + 0x70], str.C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 0x74], 0x504
jmp 0x409da7
mov dword [esp + 0x44], 0
jmp 0x409e4e
cmp byte [esp + 0x3c], 0x39
jne 0x409af4
mov esi, dword [esp + 0x24]
mov dword [esp + 0x50], 0
mov dword [esp + 0x70], str.C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 0x74], 0x4ed
test esi, esi
jle 0x40a132
cmp dword [esp + 0x24], 0x13
jg 0x40a10e
lea esi, [esp + 0x68]
lea edi, [ebx + edi + 0xd]
mov dword [esp + 0xb0], 0xd
mov dword [esp + 0x98], 0
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp], esi
mov dword [esp + 0xac], edi
mov dword [esp + 0x68], 0x4084
call sym.__gfortran_st_read
lea eax, [esp + 0x50]
mov dword [esp], esi
mov dword [esp + 8], 4
mov dword [esp + 4], eax
call sym.__gfortran_transfer_integer
mov dword [esp], esi
call sym.__gfortran_st_read_done
mov edx, dword [esp + 0x1e0]
mov ecx, dword [edx]
mov dword [esp + 0x24], ecx
lea esi, [ecx - 1]
jmp 0x409af4
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1e4]
mov dword [esp + 0x4c], 0
test edi, edi
jle 0x409cba
mov dword [esp + 0x4c], edi
jmp 0x409cda
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], 0x13
mov dword [esp + 4], str.Index__ld_of_dimension_1_of_array_w_above_upper_bound_of__ld
mov dword [esp], str.At_line_1266_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 8], ebx
call sym.__gfortran_runtime_error_at
mov dword [esp + 0xc], 1
mov dword [esp + 8], esi
mov dword [esp + 4], str.Index__ld_of_dimension_1_of_array_w_below_lower_bound_of__ld
mov dword [esp], str.At_line_1256_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
call sym.__gfortran_runtime_error_at
mov dword [esp + 0xc], 0x13
mov dword [esp + 8], esi
mov dword [esp + 4], str.Index__ld_of_dimension_1_of_array_w_above_upper_bound_of__ld
mov dword [esp], str.At_line_1256_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
call sym.__gfortran_runtime_error_at
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], 1
mov dword [esp + 4], str.Index__ld_of_dimension_1_of_array_w_below_lower_bound_of__ld
mov dword [esp], str.At_line_1266_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 8], ebx
call sym.__gfortran_runtime_error_at
mov ebp, dword [esp + 0x24]
mov dword [esp + 0xc], 0x13
mov dword [esp + 4], str.Index__ld_of_dimension_1_of_array_w_above_upper_bound_of__ld
mov dword [esp], str.At_line_1261_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 8], ebp
call sym.__gfortran_runtime_error_at
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], 1
mov dword [esp + 4], str.Index__ld_of_dimension_1_of_array_w_below_lower_bound_of__ld
mov dword [esp], str.At_line_1261_of_file_C:JTSDK64_Tools_tmpwsjtxlib77bitpackjt77.f90
mov dword [esp + 8], ecx
call sym.__gfortran_runtime_error_at
lea esi, [esi]
lea edi, [edi]