Function at 0x4546f0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
lea ebp, [esp - 0x558]
sub esp, 0x558
push 0xffffffffffffffff
push 0x4ec0f9
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x55b090]
xor eax, ebp
mov dword [ebp + 0x554], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x28], ebx
mov esi, dword [ebx + 0x1c150]
xor edx, edx
mov edi, dword [ebp + 0x560]
mov dword [ebp - 0x2c], edi
test esi, esi
jle 0x45476a
test edx, edx
js 0x454f83
cmp edx, esi
jge 0x454f83
mov eax, dword [ebx + 0x1c14c]
cmp dword [eax + edx*4], edi
je 0x454f7c
inc edx
cmp edx, esi
jl 0x454746
mov edx, dword [ebx + 0x1c128]
xor ecx, ecx
test edx, edx
jle 0x45479a
test ecx, ecx
js 0x454f83
cmp ecx, edx
jge 0x454f83
mov eax, dword [ebx + 0x1c124]
cmp dword [eax + ecx*4], edi
je 0x454f89
inc ecx
cmp ecx, edx
jl 0x454776
xor bl, bl
lea ecx, [ebp - 0x24]
mov edx, 0x527010
mov byte [ebp - 0xd], bl
call fcn.004d3680
push dword [eax]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea ecx, [ebp - 0x24]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test esi, esi
je 0x4547fc
mov edx, 0x530010
lea ecx, [ebp - 0x18]
call fcn.0043a300
push dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x18]
mov ebx, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
test ebx, ebx
je 0x4547f2
lea eax, [ebp + 0x544]
push eax
push edi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov bl, byte [ebp - 0xd]
mov edx, 0x533580
mov dword [ebp], 0x22c
lea ecx, [ebp - 0x34]
call fcn.0043a300
mov esi, eax
mov edx, 0x51bb70
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.004d3680
push dword [esi]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x30]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
test esi, esi
je 0x45504f
push 0
push 2
call esi
mov edi, eax
mov dword [ebp - 0x24], edi
cmp edi, 0xffffffff
je 0x45504f
mov edx, 0x533550
lea ecx, [ebp - 0x20]
call fcn.0043a300
mov esi, eax
mov edx, 0x51bb70
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.004d3680
push dword [esi]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x18]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
test esi, esi
je 0x454ff9
lea eax, [ebp]
push eax
push edi
call esi
cmp eax, 1
jne 0x454ff9
nop word [eax + eax]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0x544]
jne 0x454f96
lea ecx, [ebp + 0x550]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x10
push ecx
lea ecx, [ebp + 0x43c]
mov dword [ebp - 4], 2
call fcn.004d37f0
mov bh, byte [ebp + 0x53c]
lea esi, [ebp + 0x43c]
mov bl, byte [ebp + 0x540]
xor edi, edi
movzx eax, bh
add esi, eax
nop dword [eax]
movzx eax, bl
lea ecx, [ebp + 0x43c]
add ecx, eax
mov bl, byte [edi*2 + 0x528c71]
mov al, byte [ebp + 0x53d]
inc bh
add al, byte [esi]
add bl, 0x80
lea esi, [ebp + 0x43c]
mov dl, byte [ecx]
mov byte [ebp + 0x53d], al
movzx eax, al
mov byte [ebp + 0x53c], bh
movzx eax, byte [ebp + eax + 0x43c]
mov byte [ecx], al
movzx eax, byte [ebp + 0x53f]
movzx ecx, byte [ebp + 0x53d]
movzx eax, byte [ebp + eax + 0x43c]
mov byte [ebp + ecx + 0x43c], al
movzx eax, byte [ebp + 0x53c]
movzx ecx, byte [ebp + 0x53f]
movzx eax, byte [ebp + eax + 0x43c]
mov byte [ebp + ecx + 0x43c], al
movzx eax, byte [ebp + 0x53c]
mov byte [ebp + eax + 0x43c], dl
mov bh, byte [ebp + 0x53c]
movzx eax, dl
mov dl, byte [ebp + 0x53e]
add dl, byte [ebp + eax + 0x43c]
movzx eax, bh
add esi, eax
mov byte [ebp + 0x53e], dl
movzx eax, byte [ebp + 0x53d]
mov dword [ebp - 0x14], esi
movzx ecx, byte [ebp + eax + 0x43c]
movzx eax, byte [esi]
add ecx, eax
movzx eax, dl
movzx esi, cl
movzx ecx, byte [ebp + eax + 0x43c]
movzx eax, byte [ebp + 0x53f]
movzx eax, byte [ebp + eax + 0x43c]
add ecx, eax
movzx eax, byte [ebp + 0x540]
movzx eax, byte [ebp + eax + 0x43c]
add ecx, eax
movzx eax, cl
movzx ecx, byte [ebp + eax + 0x43c]
movzx eax, byte [edi*2 + 0x528c70]
shl al, 4
or bl, al
mov cl, byte [ebp + ecx + 0x43c]
xor cl, bl
mov byte [ebp + 0x540], cl
movzx eax, byte [ebp + esi + 0x43c]
xor al, cl
mov byte [ebp + 0x540], bl
mov byte [ebp + 0x53f], al
test edi, edi
jle 0x454a73
push dword [ebp + 0x53f]
lea ecx, [ebp + 0x550]
call dword [sym.imp.mfc140u.dll_Ordinal_1697]
mov esi, dword [ebp - 0x14]
inc edi
cmp edi, 0x18
jl 0x454930
push dword [ebp + 0x550]
lea ecx, [ebp - 0x140]
call fcn.0046a010
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
push dword [eax]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__17]
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0x13c]
cmp eax, ecx
je 0x454aba
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp + 0x550]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
lea ecx, [ebp - 0x1c]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test esi, esi
jne 0x454b1d
mov esi, dword [ebp - 0x28]
mov edi, dword [esi + 0x1c150]
test edi, edi
js 0x454f83
push ecx
lea eax, [edi + 1]
push eax
lea ecx, [esi + 0x1c148]
call fcn.0047d280
mov eax, dword [esi + 0x1c14c]
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 0xd], 1
mov dword [eax + edi*4], ecx
lea ecx, [ebp + 0x54c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x10
push ecx
lea ecx, [ebp + 0x334]
mov dword [ebp - 4], 5
call fcn.004d37f0
mov bh, byte [ebp + 0x434]
lea esi, [ebp + 0x334]
mov bl, byte [ebp + 0x438]
xor edi, edi
movzx eax, bh
add esi, eax
nop word [eax + eax]
movzx eax, bl
lea ecx, [ebp + 0x334]
add ecx, eax
mov bl, byte [edi*2 + 0x528cb1]
mov al, byte [ebp + 0x435]
inc bh
add al, byte [esi]
add bl, 0x80
lea esi, [ebp + 0x334]
mov dl, byte [ecx]
mov byte [ebp + 0x435], al
movzx eax, al
mov byte [ebp + 0x434], bh
movzx eax, byte [ebp + eax + 0x334]
mov byte [ecx], al
movzx eax, byte [ebp + 0x437]
movzx ecx, byte [ebp + 0x435]
movzx eax, byte [ebp + eax + 0x334]
mov byte [ebp + ecx + 0x334], al
movzx eax, byte [ebp + 0x434]
movzx ecx, byte [ebp + 0x437]
movzx eax, byte [ebp + eax + 0x334]
mov byte [ebp + ecx + 0x334], al
movzx eax, byte [ebp + 0x434]
mov byte [ebp + eax + 0x334], dl
mov bh, byte [ebp + 0x434]
movzx eax, dl
mov dl, byte [ebp + 0x436]
add dl, byte [ebp + eax + 0x334]
movzx eax, bh
add esi, eax
mov byte [ebp + 0x436], dl
movzx eax, byte [ebp + 0x435]
mov dword [ebp - 0x14], esi
movzx ecx, byte [ebp + eax + 0x334]
movzx eax, byte [esi]
add ecx, eax
movzx eax, dl
movzx esi, cl
movzx ecx, byte [ebp + eax + 0x334]
movzx eax, byte [ebp + 0x437]
movzx eax, byte [ebp + eax + 0x334]
add ecx, eax
movzx eax, byte [ebp + 0x438]
movzx eax, byte [ebp + eax + 0x334]
add ecx, eax
movzx eax, cl
movzx ecx, byte [ebp + eax + 0x334]
movzx eax, byte [edi*2 + 0x528cb0]
shl al, 4
or bl, al
mov cl, byte [ebp + ecx + 0x334]
xor cl, bl
mov byte [ebp + 0x438], cl
movzx eax, byte [ebp + esi + 0x334]
xor al, cl
mov byte [ebp + 0x438], bl
mov byte [ebp + 0x437], al
test edi, edi
jle 0x454ca3
push dword [ebp + 0x437]
lea ecx, [ebp + 0x54c]
call dword [sym.imp.mfc140u.dll_Ordinal_1697]
mov esi, dword [ebp - 0x14]
inc edi
cmp edi, 0xd
jl 0x454b60
push dword [ebp + 0x54c]
lea ecx, [ebp - 0x140]
call fcn.0046a010
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x20]
push dword [eax]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__17]
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0x13c]
cmp eax, ecx
je 0x454cea
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp + 0x54c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x20]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
lea ecx, [ebp - 0x20]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test esi, esi
jne 0x454d4d
mov esi, dword [ebp - 0x28]
mov edi, dword [esi + 0x1c150]
test edi, edi
js 0x454f83
push ecx
lea eax, [edi + 1]
push eax
lea ecx, [esi + 0x1c148]
call fcn.0047d280
mov eax, dword [esi + 0x1c14c]
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 0xd], 1
mov dword [eax + edi*4], ecx
lea ecx, [ebp + 0x548]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x10
push ecx
lea ecx, [ebp + 0x22c]
mov dword [ebp - 4], 8
call fcn.004d37f0
mov bh, byte [ebp + 0x32c]
lea edi, [ebp + 0x22c]
mov bl, byte [ebp + 0x330]
xor esi, esi
movzx eax, bh
add edi, eax
nop word [eax + eax]
movzx eax, bl
lea ecx, [ebp + 0x22c]
add ecx, eax
mov bl, byte [esi*2 + 0x528cd1]
mov al, byte [ebp + 0x32d]
inc bh
add al, byte [edi]
add bl, 0x80
lea edi, [ebp + 0x22c]
mov dl, byte [ecx]
mov byte [ebp + 0x32d], al
movzx eax, al
mov byte [ebp + 0x32c], bh
movzx eax, byte [ebp + eax + 0x22c]
mov byte [ecx], al
movzx eax, byte [ebp + 0x32f]
movzx ecx, byte [ebp + 0x32d]
movzx eax, byte [ebp + eax + 0x22c]
mov byte [ebp + ecx + 0x22c], al
movzx eax, byte [ebp + 0x32c]
movzx ecx, byte [ebp + 0x32f]
movzx eax, byte [ebp + eax + 0x22c]
mov byte [ebp + ecx + 0x22c], al
movzx eax, byte [ebp + 0x32c]
mov byte [ebp + eax + 0x22c], dl
mov bh, byte [ebp + 0x32c]
movzx eax, dl
mov dl, byte [ebp + 0x32e]
add dl, byte [ebp + eax + 0x22c]
movzx eax, bh
add edi, eax
mov byte [ebp + 0x32e], dl
movzx eax, byte [ebp + 0x32d]
mov dword [ebp - 0x14], edi
movzx ecx, byte [ebp + eax + 0x22c]
movzx eax, byte [edi]
add ecx, eax
movzx eax, dl
movzx edi, cl
movzx ecx, byte [ebp + eax + 0x22c]
movzx eax, byte [ebp + 0x32f]
movzx eax, byte [ebp + eax + 0x22c]
add ecx, eax
movzx eax, byte [ebp + 0x330]
movzx eax, byte [ebp + eax + 0x22c]
add ecx, eax
movzx eax, cl
movzx ecx, byte [ebp + eax + 0x22c]
movzx eax, byte [esi*2 + 0x528cd0]
shl al, 4
or bl, al
mov cl, byte [ebp + ecx + 0x22c]
xor cl, bl
mov byte [ebp + 0x330], cl
movzx eax, byte [ebp + edi + 0x22c]
xor al, cl
mov byte [ebp + 0x330], bl
mov byte [ebp + 0x32f], al
test esi, esi
jle 0x454ed3
push dword [ebp + 0x32f]
lea ecx, [ebp + 0x548]
call dword [sym.imp.mfc140u.dll_Ordinal_1697]
mov edi, dword [ebp - 0x14]
inc esi
cmp esi, 0x16
jl 0x454d90
push dword [ebp + 0x548]
lea ecx, [ebp - 0x140]
call fcn.0046a010
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x18]
push dword [eax]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__17]
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0x13c]
cmp eax, ecx
je 0x454f1a
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp + 0x548]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
add esp, 8
lea ecx, [ebp - 0x18]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test esi, esi
jne 0x454f90
mov esi, dword [ebp - 0x28]
mov edi, dword [esi + 0x1c150]
test edi, edi
js 0x454f83
push ecx
lea eax, [edi + 1]
push eax
lea ecx, [esi + 0x1c148]
call fcn.0047d280
mov eax, dword [esi + 0x1c14c]
mov bl, 1
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 0xd], bl
mov dword [eax + edi*4], ecx
jmp 0x454f93
mov al, 1
jmp 0x455051
call dword [sym.imp.mfc140u.dll_AfxThrowInvalidArgException]
xor al, al
jmp 0x455051
mov bl, byte [ebp - 0xd]
mov edi, dword [ebp - 0x24]
mov edx, 0x5334e0
lea ecx, [ebp - 0x3c]
call fcn.0043a300
mov esi, eax
mov edx, 0x51bb70
mov dword [ebp - 4], 0xb
lea ecx, [ebp - 0x38]
call fcn.004d3680
push dword [esi]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x38]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
test esi, esi
je 0x454ff9
lea eax, [ebp]
push eax
push edi
call esi
cmp eax, 1
je 0x4548e0
mov edx, 0x530370
lea ecx, [ebp - 0x1c]
call fcn.0043a300
mov esi, eax
mov edx, 0x51bb70
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0x14]
call fcn.004d3680
push dword [esi]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x14]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
test esi, esi
je 0x45504f
push edi
call esi
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x554]
xor ecx, ebp
call fcn.0048cc46
lea esp, [ebp + 0x558]
pop ebp
ret 4