Function at 0x40af90
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 0x40b4b6
mov edi, dword [ebp + 8]
test edi, edi
je 0x40b4b6
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x40b4b6
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 0x40b0ac
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 0x40b0d1
mov eax, ebx
and eax, 1
je 0x40b0d1
cmp byte [ebp - 0x24], 0
jne 0x40b0d1
cmp byte [ebp - 0x23], 0
jne 0x40b0d1
cmp byte [ebp - 0x22], 0
jne 0x40b0d1
cmp byte [ebp - 0x21], 0
jne 0x40b0d1
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 0x40b493
mov ecx, dword [0x4b3f28]
test ecx, ecx
je 0x40b4b6
mov esi, dword [0x4b3f2c]
mov edi, edx
call dword [section..00cfg]
push esi
push edi
push 0
jmp 0x40b4b1
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x30]
push eax
push ecx
push 0
push dword [ebp - 0x40]
push edi
call fcn.0040a240
mov ecx, dword [ebp - 0x40]
add esp, 0x14
cmp eax, 0xffffffff
je 0x40b177
mov edx, ecx
sub edx, eax
jb 0x40b177
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
cmp dword [ecx + 4], 0
je 0x40b177
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 0x40b1a5
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x2c], 0
je 0x40b1a5
mov eax, dword [ebp - 0x3c]
add eax, 0x2c
jmp 0x40b1ab
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 0x40b490
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 0x40b1f5
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 0x40b22a
test bl, 1
mov edi, dword [ebp - 0x48]
je 0x40b250
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 0x40b250
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.0040b520
cmp dword [ebp - 0x40], edi
jne 0x40b269
xor eax, eax
jmp 0x40b26b
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.0040a820
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.0040a820
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.0040a820
add esp, 0x14
mov dword [ebp - 0x38], eax
mov edx, dword [edi + 0x4c]
mov ecx, esi
call fcn.0040a0f0
test byte [ebp - 0x44], 3
je 0x40b2f4
mov ecx, esi
mov edx, 0x29
call fcn.0040a0f0
cmp byte [esi + 0x2a], 2
mov ecx, dword [ebp - 0x40]
jne 0x40b330
mov edi, dword [esi + 0x78]
test edi, edi
je 0x40b330
cmp dword [edi], 1
jne 0x40b32b
cmp dword [edi + 0x1c], 4
jne 0x40b32b
test byte [edi + 0x18], 1
je 0x40b32b
lea eax, [edi + 0x10]
mov ecx, dword [edi + 0x20]
add ecx, 8
push ecx
push eax
call fcn.0040a050
mov ecx, dword [ebp - 0x40]
add esp, 8
mov edi, dword [edi + 0x60]
jmp 0x40b300
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 0x40b39b
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.0040a240
add esp, 0x14
cmp eax, 0xffffffff
je 0x40b41f
mov edi, dword [ebp - 0x28]
cmp dword [edi + 4], 0
je 0x40b41f
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.0040b520
inc ebx
mov ecx, dword [ebp - 0x40]
test ebx, ebx
lea eax, [ebp - 0x24]
je 0x40b44b
mov byte [esi + 0x28], bl
cmp ebx, ecx
jle 0x40b4ca
mov ecx, dword [0x4b3f28]
test ecx, ecx
je 0x40b3d2
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 0x40b3fc
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 0x40b3ed
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 0x40b4b6
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40b475
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 0x40b43a
jmp 0x40b475
mov dword [esi + 0x6c], 0x64696c
mov dword [esi + 0x68], 0x61766e69
mov eax, dword [esi + 0x78]
test eax, eax
je 0x40b475
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 0x40b466
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 0x40b4b6
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.0043f990
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 0x40b4b3