Function at 0x41d270
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4a023e
mov eax, dword fs:[0]
push eax
mov eax, 0x2270
call fcn.004831d0
mov eax, dword [0x4eed38]
xor eax, esp
mov dword [esp + 0x226c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eed38]
xor eax, esp
push eax
lea eax, [esp + 0x2284]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0045b40e
mov ecx, dword [eax + 4]
call fcn.00458dad
lea eax, [esi + 0x1ec0]
xor ebx, ebx
push eax
mov ecx, esi
mov dword [esp + 0x2290], ebx
mov dword [esp + 0x3c], eax
call fcn.00416330
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.00444a80
test eax, eax
jne 0x41d2fa
mov dword [esp + 0x228c], 0xffffffff
jmp 0x41d84c
push 0x4a8ca8
lea ecx, [esp + 0x1c]
call fcn.00402530
mov byte [esp + 0x228c], 1
mov dword [esp + 0x34], ebx
call fcn.00459da6
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41d32e
push 0x80004005
call fcn.00401150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x34]
push ecx
push str.DSPCode
mov ecx, edi
mov byte [esp + 0x2294], 2
call fcn.00444950
or edi, 0xffffffff
cmp eax, edi
je 0x41d742
cmp dword [esp + 0x34], ebx
je 0x41d742
cmp eax, ebx
jl 0x41d7f7
cmp eax, dword [esi + 0x100]
jge 0x41d7f7
mov edx, dword [esi + 0xfc]
lea eax, [edx + eax*4]
push eax
lea ecx, [esp + 0x20]
call fcn.00401c20
mov esi, dword [esp + 0x1c]
cmp dword [esi - 0xc], ebx
je 0x41d7f2
push 0x4ad490
push esi
call fcn.00483f2d
add esp, 8
cmp eax, ebx
je 0x41d7f2
lea ecx, [esp + 0x60]
call fcn.0045bc62
push 0x206
lea ecx, [esp + 0x7e]
xor eax, eax
push ebx
push ecx
mov byte [esp + 0x2298], 3
mov word [esp + 0x84], ax
call fcn.00482280
mov eax, dword [0x4f0154]
add esp, 0xc
push 0x104
lea edx, [esp + 0x7c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0x78]
push 0x5c
push ecx
call fcn.00482892
xor edx, edx
lea edi, [esp + 0x80]
add esp, 8
mov word [eax], dx
add edi, 0xfffffffe
jmp 0x41d420
mov ax, word [edi + 2]
add edi, 2
cmp ax, bx
jne 0x41d420
mov ecx, 8
mov esi, str.BMFileType.ini
push 0x1ffe
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x286]
xor eax, eax
push ebx
push ecx
mov word [esp + 0x28c], ax
call fcn.00482280
add esp, 0xc
lea edx, [esp + 0x78]
push edx
push 0x1000
lea eax, [esp + 0x288]
push eax
push str.ChipDSPMap
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
cmp eax, ebx
jne 0x41d4d5
push 1
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Not_found_ChipID_DSPName_map_setting_in_BMFileType.ini_
call fcn.00402530
mov ecx, 0x4f0110
call fcn.0040cea0
lea ecx, [esp + 0x60]
mov byte [esp + 0x228c], 2
call fcn.0045bc8b
lea ecx, [esp + 0x1c]
call fcn.004014d0
lea ecx, [esp + 0x18]
call fcn.004014d0
lea ecx, [esp + 0x17]
mov dword [esp + 0x228c], 0xffffffff
call fcn.00403520
xor eax, eax
jmp 0x41d85a
lea ecx, [esp + 0x4c]
call fcn.0045e668
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x284]
push edx
mov byte [esp + 0x2294], 4
call fcn.00446de0
mov esi, eax
add esp, 8
mov dword [esp + 0x30], esi
cmp esi, ebx
jne 0x41d539
push 1
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Not_found_ChipID_DSPName_map_setting_in_BMFileType.ini_
call fcn.00402530
mov ecx, 0x4f0110
call fcn.0040cea0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x228c], 3
call fcn.0045e894
jmp 0x41d497
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
call fcn.00401680
push 0x5c
lea ecx, [esp + 0x28]
mov byte [esp + 0x2290], 5
call fcn.00402f70
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401a60
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2290], 6
call fcn.00401c20
lea ecx, [esp + 0x28]
mov byte [esp + 0x228c], 5
call fcn.004014d0
xor ebp, ebp
cmp esi, ebx
jbe 0x41d710
lea esi, [ebp + ebp]
push esi
lea ecx, [esp + 0x50]
mov dword [esp + 0x2c], ebx
call fcn.00408c00
push eax
lea ecx, [esp + 0x30]
call fcn.00401680
lea ecx, [esp + 0x2c]
mov byte [esp + 0x228c], 7
call fcn.00417880
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x28]
push edx
push str.0X_08x
push eax
call fcn.004831ac
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.00401650
inc esi
push esi
lea ecx, [esp + 0x50]
mov byte [esp + 0x2290], 8
call fcn.00408c00
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x28]
push 0x4a8e54
push edx
call fcn.00401ce0
mov edi, dword [esp + 0x30]
add esp, 0x10
push ebx
push edi
lea ecx, [esp + 0x68]
call fcn.0045bcfa
test eax, eax
jne 0x41d644
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
call fcn.004024d0
push 0x4aeaf0
lea ecx, [esp + 0x1c]
call fcn.004024f0
jmp 0x41d6eb
push 0x220
call fcn.00451dd0
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x41d668
push 0x220
push ebx
push esi
call fcn.00482280
add esp, 0xc
jmp 0x41d66a
xor esi, esi
mov ecx, esi
sub ecx, edi
mov eax, edi
lea edx, [ecx + 8]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bx
jne 0x41d673
push 0x8020
push edi
lea ecx, [esp + 0x44]
call fcn.0045ccf1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x228c], 9
call fcn.0045c3fd
mov dword [esi], eax
cmp eax, ebx
je 0x41d6c1
push eax
call fcn.00451e0a
mov edx, dword [esi]
add esp, 4
push edx
push eax
lea ecx, [esp + 0x44]
mov dword [esi + 4], eax
call fcn.0045c206
lea ecx, [esp + 0x3c]
call fcn.0045c4ac
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
push eax
call fcn.00438f70
lea ecx, [esp + 0x3c]
mov dword [eax], esi
mov byte [esp + 0x228c], 8
call fcn.0045c6c9
lea ecx, [esp + 0x20]
call fcn.004014d0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x228c], 5
call fcn.004014d0
inc ebp
cmp ebp, dword [esp + 0x30]
jb 0x41d596
lea ecx, [esp + 0x24]
call fcn.004014d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x228c], 3
call fcn.0045e894
lea ecx, [esp + 0x60]
mov byte [esp + 0x228c], 2
call fcn.0045bc8b
mov ebp, dword [esp + 0x1c]
or edi, 0xffffffff
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], ebx
je 0x41d7fc
push str.Not_found_bellow_DSP_file:_r_n
push ebx
lea ecx, [esp + 0x20]
call fcn.004033b0
push str._r_nPlease_check_BMFileType.ini___ChipDspMap__
lea ecx, [esp + 0x1c]
call fcn.004024f0
mov eax, dword [esp + 0x18]
push 1
push ebx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x3c], esp
mov esi, esp
push eax
call fcn.004015b0
add eax, 0x10
add esp, 4
mov ecx, 0x4f0110
mov dword [esi], eax
call fcn.0040cea0
lea eax, [ebp - 0x10]
mov byte [esp + 0x228c], 1
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d7b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x228c], bl
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d7de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x17]
mov dword [esp + 0x228c], edi
call fcn.00403520
xor eax, eax
jmp 0x41d85a
lea eax, [esi - 0x10]
jmp 0x41d7ff
call fcn.00451f1d
lea eax, [ebp - 0x10]
mov edx, edi
lea ecx, [eax + 0xc]
mov byte [esp + 0x228c], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d81f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov edx, edi
lea ecx, [eax + 0xc]
mov byte [esp + 0x228c], bl
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d845
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x228c], edi
lea ecx, [esp + 0x17]
call fcn.00403520
mov eax, 1
mov ecx, dword [esp + 0x2284]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x226c]
xor ecx, esp
call fcn.004820da
add esp, 0x227c
ret