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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov ecx, dword [ebp + 0xc]
mov eax, dword [0x481014]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor ebx, ebx
test ecx, ecx
je 0x40b4a6
mov edi, dword [ebp + 8]
test edi, edi
je 0x40b4a6
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x40b4a6
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
xorps xmm0, xmm0
movups xmmword [esi + 0x80], xmm0
movups xmmword [esi + 0x70], xmm0
movups xmmword [esi + 0x60], xmm0
movups xmmword [esi + 0x50], xmm0
movups xmmword [esi + 0x40], xmm0
movups xmmword [esi + 0x30], xmm0
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x10], xmm0
add edx, eax
mov dword [esi], edx
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
sub ecx, eax
jbe 0x40b09c
mov dword [ebp - 0x50], edx
cmp ecx, 0x14
mov ebx, 0x14
cmovl ebx, ecx
mov dword [ebp - 0x40], ecx
lea ecx, [ebx - 0x14]
neg ecx
xor edx, edx
cmp ebx, 0x14
cmovae ecx, edx
add edi, eax
lea eax, [ebx + ebp]
add eax, 0xffffffdc
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x24]
push ebx
push edi
mov edi, eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
mov ebx, dword [0x481c64]
cmp dword [ebp - 0x40], 4
jb 0x40b0c1
mov eax, ebx
and eax, 1
je 0x40b0c1
cmp byte [ebp - 0x24], 0
jne 0x40b0c1
cmp byte [ebp - 0x23], 0
jne 0x40b0c1
cmp byte [ebp - 0x22], 0
jne 0x40b0c1
cmp byte [ebp - 0x21], 0
jne 0x40b0c1
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
xor eax, eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], eax
mov byte [esi + 0x28], 1
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov byte [esi + 0x14], 0
jmp 0x40b483
mov ecx, dword [0x4b3f28]
test ecx, ecx
je 0x40b4a6
mov esi, dword [0x4b3f2c]
mov edi, edx
call dword [section..00cfg]
push esi
push edi
push 0
jmp 0x40b4a1
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x30]
push eax
push ecx
push 0
push dword [ebp - 0x40]
push edi
call fcn.0040a230
mov ecx, dword [ebp - 0x40]
add esp, 0x14
cmp eax, 0xffffffff
je 0x40b167
mov edx, ecx
sub edx, eax
jb 0x40b167
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
cmp dword [ecx + 4], 0
je 0x40b167
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x34]
mov eax, edx
and eax, 0x10
mov ecx, eax
shr ecx, 4
test eax, eax
sete byte [ebp - 0x4c]
mov dword [ebp - 0x44], edx
mov eax, edx
and eax, 0x20
mov edx, eax
shr edx, 5
test eax, eax
sete al
mov ah, byte [ebp - 0x4c]
add ah, ah
add ah, 2
add al, al
add al, 2
add cl, cl
add cl, 2
add dl, dl
add dl, 2
test bl, 2
movzx ecx, cl
movzx edi, ah
cmove ecx, edi
mov byte [esi + 0x2a], cl
movzx eax, al
movzx ecx, dl
cmove ecx, eax
mov byte [esi + 0x29], cl
test bl, 4
je 0x40b195
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x2c], 0
je 0x40b195
mov eax, dword [ebp - 0x3c]
add eax, 0x2c
jmp 0x40b19b
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
mov al, byte [ebp - 0x24]
xor ecx, ecx
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x80], ecx
mov byte [esi + 0x28], 1
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
jmp 0x40b480
mov eax, dword [ebp - 0x3c]
add eax, 0x1c
lea ecx, [esi + 0x68]
push 0x10
push eax
mov dword [ebp - 0x54], ecx
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov ebx, dword [ebp - 0x44]
movzx eax, bx
and ebx, 0xf
cmovne ebx, eax
mov dword [esi + 0x44], ebx
test bl, 4
je 0x40b1e5
lea edi, [esi + 0x48]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, 0x20
sub ecx, eax
push ecx
push str.lock
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
add esp, 0xc
test bl, 2
jne 0x40b21a
test bl, 1
mov edi, dword [ebp - 0x48]
je 0x40b240
lea edi, [esi + 0x48]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, 0x20
sub ecx, eax
push ecx
push str.repz
push edi
mov edi, dword [ebp - 0x48]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
add esp, 0xc
jmp 0x40b240
lea edi, [esi + 0x48]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, 0x20
sub ecx, eax
push ecx
push str.repnz
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
add esp, 0xc
mov edi, dword [ebp - 0x48]
lea ebx, [edi + ebp]
add ebx, 0xffffffdc
mov ecx, esi
mov edx, dword [ebp - 0x3c]
call fcn.0040b510
cmp dword [ebp - 0x40], edi
jne 0x40b259
xor eax, eax
jmp 0x40b25b
mov al, byte [ebx]
mov edi, dword [ebp - 0x38]
movzx eax, al
mov dword [ebp - 0x38], eax
mov ecx, ebx
mov edx, edi
push eax
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
push dword [eax + 0xc]
push dword [eax + 0x3c]
push esi
call fcn.0040a810
add esp, 0x14
add ebx, eax
mov dword [ebp - 0x4c], eax
sub edi, eax
mov ecx, ebx
mov edx, edi
push dword [ebp - 0x38]
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x10]
push dword [eax + 0x40]
push esi
call fcn.0040a810
add esp, 0x14
mov ecx, ebx
mov ebx, eax
add ecx, eax
sub edi, eax
mov edx, edi
push dword [ebp - 0x38]
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x14]
push dword [eax + 0x44]
mov edi, eax
push esi
call fcn.0040a810
add esp, 0x14
mov dword [ebp - 0x38], eax
mov edx, dword [edi + 0x4c]
mov ecx, esi
call fcn.0040a0e0
test byte [ebp - 0x44], 3
je 0x40b2e4
mov ecx, esi
mov edx, 0x29
call fcn.0040a0e0
cmp byte [esi + 0x2a], 2
mov ecx, dword [ebp - 0x40]
jne 0x40b320
mov edi, dword [esi + 0x78]
test edi, edi
je 0x40b320
cmp dword [edi], 1
jne 0x40b31b
cmp dword [edi + 0x1c], 4
jne 0x40b31b
test byte [edi + 0x18], 1
je 0x40b31b
lea eax, [edi + 0x10]
mov ecx, dword [edi + 0x20]
add ecx, 8
push ecx
push eax
call fcn.0040a040
mov ecx, dword [ebp - 0x40]
add esp, 8
mov edi, dword [edi + 0x60]
jmp 0x40b2f0
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x48]
add ebx, dword [ebp - 0x38]
add ebx, eax
mov eax, dword [ebp - 0x30]
test byte [eax + 7], 0x20
je 0x40b38b
sub ecx, ebx
lea edx, [ebx + ebp]
add edx, 0xffffffdc
lea edi, [ebp - 0x2c]
mov dword [edi], 0
push edi
lea edi, [ebp - 0x28]
push edi
push dword [eax]
push ecx
push edx
call fcn.0040a230
add esp, 0x14
cmp eax, 0xffffffff
je 0x40b40f
mov edi, dword [ebp - 0x28]
cmp dword [edi + 4], 0
je 0x40b40f
lea eax, [edi + 0x1c]
push 0x10
push eax
push dword [ebp - 0x54]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov ecx, esi
mov edx, edi
call fcn.0040b510
inc ebx
mov ecx, dword [ebp - 0x40]
test ebx, ebx
lea eax, [ebp - 0x24]
je 0x40b43b
mov byte [esi + 0x28], bl
cmp ebx, ecx
jle 0x40b4ba
mov ecx, dword [0x4b3f28]
test ecx, ecx
je 0x40b3c2
mov edi, dword [0x4b3f2c]
call dword [section..00cfg]
push edi
push dword [ebp - 0x50]
push 1
call ecx
add esp, 0xc
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40b3ec
mov edi, dword [sym.imp.mozglue.dll_free]
mov ebx, dword [eax + 0x60]
push eax
call edi
add esp, 4
mov eax, ebx
test ebx, ebx
jne 0x40b3dd
xor ebx, ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x80], ebx
mov byte [esi + 0x28], 1
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov al, byte [ebp - 0x24]
mov byte [esi + 0x14], al
jmp 0x40b4a6
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40b465
mov edi, dword [sym.imp.mozglue.dll_free]
mov ebx, dword [eax + 0x60]
push eax
call edi
add esp, 4
mov eax, ebx
test ebx, ebx
jne 0x40b42a
jmp 0x40b465
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40b465
mov edi, dword [sym.imp.mozglue.dll_free]
mov ebx, dword [eax + 0x60]
push eax
call edi
add esp, 4
mov eax, ebx
test ebx, ebx
jne 0x40b456
xor eax, eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], eax
mov byte [esi + 0x28], 1
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x24]
mov byte [esi + 0x14], al
mov ecx, dword [0x4b3f28]
xor ebx, ebx
test ecx, ecx
je 0x40b4a6
mov esi, dword [0x4b3f2c]
call dword [section..00cfg]
push esi
push dword [ebp - 0x50]
push 2
call ecx
add esp, 0xc
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043f980
mov eax, ebx
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
add esi, 0x14
push ebx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
jmp 0x40b4a3