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

Disassembly:
push 0xffffffffffffffff
push 0x420225
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
mov eax, dword [esp + 0xb0]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x30], ecx
push eax
call dword [sym.imp.MSVCRT.dll__strdup]
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x12]
xor eax, eax
push ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x40], eax
call fcn.0041ddd0
mov byte [esp + 0xb8], 1
mov esi, dword [sym.imp.MSVCRT.dll_free]
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x41cdb1
xor ebx, ebx
jmp 0x41cdf8
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x64]
lea eax, [esp + 0xa0]
mov dword [esp + 0x98], ecx
push 1
push eax
lea ecx, [esp + 0x98]
mov dword [esp + 0xa4], edx
call fcn.0041e3c0
mov eax, dword [eax + 8]
mov ebx, dword [eax]
lea ecx, [esp + 0x28]
mov dword [esp + 0x74], ebx
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x2c], 0x3c
mov byte [esp + 0x2d], 0
call fcn.0041c3c0
test eax, eax
je 0x41d493
mov edx, dword [esp + 0x30]
push eax
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x41ce81
call fcn.00419ea0
add esp, 4
mov esi, eax
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebp, eax
lea eax, [ebp + 1]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
add esp, 4
mov edi, eax
push 0
push 0
push ebp
push edi
push 0xffffffffffffffff
push esi
push 0
push 0
mov byte [edi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
mov ebp, edi
call fcn.0041e706
mov esi, dword [sym.imp.MSVCRT.dll_free]
add esp, 4
jmp 0x41ce8c
call dword [sym.imp.MSVCRT.dll__strdup]
add esp, 4
mov ebp, eax
push 0x4267a8
push ebp
call fcn.0041d510
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41cf54
test ebx, ebx
push ebp
je 0x41d3aa
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.0041ccb0
mov cl, byte [esp + 0x12]
push 0
mov byte [esp + 0x84], cl
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edx, dword [edi]
lea eax, [esp + 0x80]
push eax
push ebp
mov ecx, edi
mov byte [esp + 0xc0], 2
call dword [edx + 4]
test eax, eax
je 0x41cf1d
mov eax, dword [esp + 0x84]
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
test eax, eax
je 0x41cf09
mov esi, eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x41cf1a
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
push esi
jmp 0x41cf2b
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x41cf2a
push eax
call esi
add esp, 4
push ebp
call dword [sym.imp.MSVCRT.dll__strdup]
add esp, 4
lea ecx, [esp + 0x80]
mov dword [ebx + 0x24], eax
mov byte [esp + 0xb8], 1
push 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, dword [sym.imp.MSVCRT.dll_free]
push ebp
call esi
add esp, 4
lea ecx, [esp + 0x2e]
mov byte [esp + 0x2e], 0x3e
mov byte [esp + 0x2f], 0
push ecx
lea ecx, [esp + 0x38]
call fcn.0041c3c0
mov edx, eax
test edx, edx
mov dword [esp + 0x18], edx
je 0x41d464
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41d464
push edx
call dword [sym.imp.MSVCRT.dll__strdup]
mov ebp, eax
add esp, 4
xor ebx, ebx
mov dword [esp + 0x78], ebp
mov al, byte [ebp]
mov dword [esp + 0x40], ebx
cmp al, 0x3f
jne 0x41cfce
lea edx, [esp + 0x2c]
mov dword [esp + 0x40], 1
push edx
push ebp
mov byte [esp + 0x34], 0x3f
mov byte [esp + 0x35], bl
call fcn.0041d510
add esp, 8
cmp byte [ebp], 0x2f
jne 0x41cff4
push ebp
call esi
mov eax, dword [esp + 0x74]
add esp, 4
cmp eax, ebx
je 0x41d453
lea ecx, [esp + 0x44]
call fcn.0041de90
jmp 0x41cda5
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffe
cmp byte [ecx + ebp], 0x2f
sete al
cmp eax, ebx
mov dword [esp + 0x7c], eax
je 0x41d015
mov byte [ecx + ebp], 0
mov al, byte [ebp]
mov ecx, ebp
test al, al
je 0x41d02a
cmp al, 0x3d
je 0x41d088
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41d01e
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x14], ebx
je 0x41d281
mov eax, dword [esp + 0x78]
push eax
call dword [sym.imp.MSVCRT.dll__strdup]
mov ebx, eax
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov edi, 0x4267a8
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0xb8], 3
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, ebx
mov esi, ecx
xor eax, eax
test esi, esi
jle 0x41d080
mov cl, byte [edx]
cmp cl, byte [eax + 0x4267a8]
je 0x41d08f
inc eax
cmp eax, esi
jl 0x41d073
cmp byte [edx], 0
je 0x41d0a1
inc edx
jmp 0x41d06b
mov eax, 1
jmp 0x41d02c
mov byte [edx], 0
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x20], edx
jmp 0x41d0a3
xor ebp, ebp
mov edi, dword [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x41d426
push 0x58
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
xor edi, edi
mov byte [esp + 0xb8], 4
cmp esi, edi
je 0x41d11b
mov cl, byte [esp + 0x12]
lea edx, [esp + 0x13]
mov byte [esi], cl
push edx
lea ecx, [esi + 0x10]
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
call fcn.0041ddb0
lea ecx, [esi + 0x30]
call fcn.0041ca50
lea ecx, [esi + 0x44]
call fcn.0041ca50
mov ebx, dword [sym.imp.MSVCRT.dll__strdup]
push ebp
call ebx
add esp, 4
mov dword [esi + 0x20], eax
mov dword [esi + 0x28], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x2c], edi
jmp 0x41d123
mov ebx, dword [sym.imp.MSVCRT.dll__strdup]
xor esi, esi
mov byte [esp + 0xb8], 3
mov dword [esp + 0x14], esi
lea eax, [esp + 0x26]
lea ecx, [esp + 0x1c]
push eax
mov byte [esp + 0x2a], 0x3d
mov byte [esp + 0x2b], 0
call fcn.0041c3c0
cmp eax, edi
je 0x41d269
push eax
call ebx
mov ebp, eax
push 0x4267a8
push ebp
call fcn.0041d510
mov edi, 0x4267a8
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x20]
not ecx
dec ecx
mov esi, edi
xor eax, eax
test ecx, ecx
jle 0x41d18c
mov dl, byte [esi]
cmp dl, byte [eax + 0x4267a8]
je 0x41d194
inc eax
cmp eax, ecx
jl 0x41d17f
cmp byte [esi], 0
je 0x41d1a6
inc esi
jmp 0x41d177
mov byte [esi], 0
mov eax, dword [esp + 0x20]
lea edi, [esi + 1]
test eax, eax
mov dword [esp + 0x20], edi
jne 0x41d1c8
mov esi, dword [esp + 0x1c]
mov edx, edi
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, esi
test edx, edx
mov dword [esp + 0x20], ecx
je 0x41d3e1
push eax
call ebx
lea ecx, [esp + 0x2e]
mov edi, eax
push ecx
push edi
mov byte [esp + 0x36], 0x22
mov byte [esp + 0x37], 0
call fcn.0041d510
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 0x10
test esi, esi
je 0x41d202
push ebp
call ebx
push edi
mov dword [esi], eax
call ebx
add esp, 8
mov dword [esi + 4], eax
jmp 0x41d204
xor esi, esi
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x18]
push edx
push 1
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], esi
push eax
call fcn.0041dfd0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x41d253
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push str.encoding
push ebp
call esi
add esp, 8
test eax, eax
jne 0x41d253
push str.utf_8
push edi
call esi
add esp, 8
test eax, eax
jne 0x41d253
mov ecx, dword [esp + 0x30]
mov dword [ecx + 8], 1
mov esi, dword [sym.imp.MSVCRT.dll_free]
push edi
call esi
push ebp
call esi
add esp, 8
xor edi, edi
jmp 0x41d12f
mov edx, dword [esp + 0x1c]
mov byte [esp + 0xb8], 1
push edx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
jmp 0x41d2e2
push 0x58
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
xor edi, edi
add esp, 4
cmp esi, edi
je 0x41d2da
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x13]
mov byte [esi], al
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov byte [esi + 0x10], cl
lea ecx, [esi + 0x30]
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
call fcn.0041ca50
lea ecx, [esi + 0x44]
call fcn.0041ca50
push ebp
call dword [sym.imp.MSVCRT.dll__strdup]
add esp, 4
mov dword [esi + 0x20], eax
mov dword [esi + 0x28], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x2c], edi
jmp 0x41d2dc
xor esi, esi
mov dword [esp + 0x14], esi
xor edi, edi
mov edx, dword [esp + 0x78]
push edx
call dword [sym.imp.MSVCRT.dll_free]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
add esp, 4
mov dword [eax + 0x2c], ecx
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov eax, dword [esp + 0x14]
jne 0x41d30b
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x74]
cmp ecx, edi
je 0x41d32a
add ecx, 0x10
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
push edx
mov eax, dword [ecx + 8]
push 1
push eax
call fcn.0041dfd0
cmp dword [esp + 0x7c], edi
jne 0x41cd9f
cmp dword [esp + 0x70], edi
je 0x41d378
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
cmp ecx, edx
je 0x41d378
lea eax, [ecx + 4]
cmp eax, edx
mov dword [esp + 0x60], eax
jne 0x41d371
lea edx, [esp + 0x14]
push edx
push ecx
call fcn.0041e490
add esp, 8
lea ecx, [esp + 0x44]
call fcn.0041e1e0
inc dword [esp + 0x70]
jmp 0x41cd9f
lea eax, [esp + 0x14]
push eax
jmp 0x41d393
lea ecx, [esp + 0x44]
call fcn.0041e1e0
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x14]
mov ecx, eax
add eax, 4
mov dword [esp + 0x60], eax
push edx
push ecx
call fcn.0041e490
mov eax, dword [esp + 0x78]
add esp, 8
inc eax
mov dword [esp + 0x70], eax
jmp 0x41cd9f
call esi
mov eax, dword [esp + 0x74]
add esp, 4
test eax, eax
mov byte [esp + 0xb8], 0
je 0x41d3d0
lea ecx, [esp + 0x44]
call fcn.0041de00
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x41d3bf
mov eax, dword [esp + 0x34]
push eax
call esi
add esp, 4
xor eax, eax
jmp 0x41d4ee
mov esi, dword [sym.imp.MSVCRT.dll_free]
push ebp
call esi
mov edx, dword [esp + 0x20]
push edx
call esi
mov eax, dword [esp + 0x78]
add esp, 8
test eax, eax
mov byte [esp + 0xb8], 0
je 0x41d415
lea ecx, [esp + 0x44]
call fcn.0041de00
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x41d404
mov eax, dword [esp + 0x34]
push eax
call esi
add esp, 4
xor eax, eax
jmp 0x41d4ee
mov esi, dword [sym.imp.MSVCRT.dll_free]
push ebx
call esi
mov eax, dword [esp + 0x74]
add esp, 4
test eax, eax
mov byte [esp + 0xb8], 0
je 0x41d453
lea ecx, [esp + 0x44]
call fcn.0041de00
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x41d442
mov ecx, dword [esp + 0x34]
push ecx
call esi
add esp, 4
xor eax, eax
jmp 0x41d4ee
mov eax, dword [esp + 0x70]
mov byte [esp + 0xb8], 0
test eax, eax
je 0x41d485
lea ecx, [esp + 0x44]
call fcn.0041de00
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x41d474
mov edx, dword [esp + 0x34]
push edx
call esi
add esp, 4
xor eax, eax
jmp 0x41d4ee
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xb8], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x41d4df
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x70]
add ecx, 4
dec eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x70], eax
je 0x41d4ce
mov eax, dword [esp + 0x4c]
mov edx, ecx
cmp edx, eax
jne 0x41d4d7
lea ecx, [esp + 0x44]
call fcn.0041e340
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x41d4ae
mov eax, dword [esp + 0x34]
push eax
call esi
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0xb0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xac
ret 4