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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
mov esi, dword [esp + 0x78]
push edi
mov eax, dword [esi + 4]
movzx eax, byte [eax]
and eax, 0x1f
dec eax
cmp eax, 0x1d
ja case.0x40ff55.7
movzx eax, byte [eax + 0x41053c]
jmp dword [eax*4 + 0x410508]
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
test edx, edx
je 0x4104fe
cmp ecx, 2
jb 0x4104fe
mov al, byte [edx + 1]
test al, al
jns 0x40ff93
movzx eax, al
and eax, 0x7f
add eax, 2
jmp 0x40ff98
mov eax, 2
cmp ecx, eax
jb 0x4104fe
push dword [esp + 0x84]
add edx, eax
sub ecx, eax
push dword [esp + 0x84]
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], edx
push eax
push dword [esp + 0x84]
mov dword [esp + 0x38], ecx
call fcn.0040c090
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
test edx, edx
je 0x4104fe
cmp ecx, 2
jb 0x4104fe
mov al, byte [edx + 1]
test al, al
jns 0x41000d
movzx eax, al
and eax, 0x7f
add eax, 2
jmp 0x410012
mov eax, 2
cmp ecx, eax
jb 0x4104fe
push dword [esp + 0x84]
add edx, eax
sub ecx, eax
push dword [esp + 0x84]
lea eax, [esp + 0x34]
mov dword [esp + 0x38], edx
push eax
push dword [esp + 0x84]
mov dword [esp + 0x44], ecx
call fcn.0040e130
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x50], eax
test edx, edx
je 0x4104fe
cmp ecx, 2
jb 0x4104fe
mov al, byte [edx + 1]
test al, al
jns 0x41007f
movzx eax, al
and eax, 0x7f
add eax, 2
jmp 0x410084
mov eax, 2
cmp ecx, eax
jb 0x4104fe
push dword [esp + 0x84]
add edx, eax
sub ecx, eax
push dword [esp + 0x84]
lea eax, [esp + 0x58]
mov dword [esp + 0x5c], edx
push eax
push dword [esp + 0x84]
mov dword [esp + 0x68], ecx
call fcn.0040ec00
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push dword [esp + 0x84]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
call fcn.0040e350
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push dword [esp + 0x84]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
call fcn.0040e060
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push dword [esp + 0x84]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
call fcn.0040e450
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push dword [esp + 0x84]
mov esi, dword [esp + 0x7c]
push esi
call fcn.0040b900
mov eax, dword [esp + 0x88]
add esp, 8
test eax, eax
je 0x41016f
cmp byte [eax], 0
je 0x41016f
push eax
push str._s:_NULL_n
push esi
call fcn.00404480
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push str.NULL_n
push esi
call fcn.00404480
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push dword [esp + 0x84]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
call fcn.0040e1f0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
test edx, edx
je 0x4104fe
cmp ecx, 2
jb 0x4104fe
mov al, byte [edx + 1]
test al, al
jns 0x4101e2
movzx eax, al
and eax, 0x7f
add eax, 2
jmp 0x4101e7
mov eax, 2
cmp ecx, eax
jb 0x4104fe
push dword [esp + 0x84]
add edx, eax
sub ecx, eax
push dword [esp + 0x84]
lea eax, [esp + 0x40]
mov dword [esp + 0x44], edx
push eax
push dword [esp + 0x84]
mov dword [esp + 0x50], ecx
call fcn.0040bc50
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x4104fe
cmp eax, 2
jb 0x4104fe
mov dl, byte [ecx + 1]
test dl, dl
jns 0x41025c
movzx edx, dl
and edx, 0x7f
add edx, 2
jmp 0x410261
mov edx, 2
cmp eax, edx
jb 0x4104fe
sub eax, edx
add ecx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
cmp eax, 2
jb 0x4104fe
movzx edi, byte [ecx]
dec eax
mov ebx, dword [esp + 0x84]
inc ecx
mov esi, dword [esp + 0x78]
push ebx
push dword [esp + 0x84]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
push eax
push esi
mov dword [esp + 0x28], ecx
call fcn.0040bc50
add esp, 0x10
test edi, edi
je 0x4104fe
lea eax, [ebx + 1]
push eax
push esi
call fcn.0040b900
push edi
push str.__d_least_significant_bits_unused__n
push esi
call fcn.00404480
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov edi, dword [esi + 4]
xor ebp, ebp
mov eax, dword [esi]
mov ebx, dword [esi + 8]
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], ebp
test edi, edi
je 0x4103b9
cmp ebx, 2
jb 0x4103b9
mov al, byte [edi + 1]
test al, al
jns 0x41030e
movzx eax, al
and eax, 0x7f
add eax, 2
jmp 0x410313
mov eax, 2
cmp ebx, eax
jb 0x4103b9
sub ebx, eax
add edi, eax
test bl, 1
jne 0x4103b9
shr ebx, 1
push ebx
call sub.nssutil3.dll_PORT_Alloc_Util
mov ebp, eax
add esp, 4
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x48], ebp
test ebp, ebp
je 0x4103b9
mov dword [esp + 0x4c], ebx
test ebx, ebx
je 0x41037d
lea esp, [esp]
movzx ecx, byte [edi]
lea edi, [edi + 2]
movzx eax, byte [edi - 1]
shl ecx, 8
or ecx, eax
push ecx
mov dword [esp + 0x14], ecx
call fcn.00415f91
add esp, 4
test eax, eax
je 0x4103b5
mov eax, dword [esp + 0x10]
dec ebx
mov byte [ebp], al
inc ebp
test ebx, ebx
jg 0x410350
push 1
push dword [esp + 0x88]
lea eax, [esp + 0x4c]
push dword [esp + 0x88]
push eax
push dword [esp + 0x88]
call fcn.0040f9e0
push dword [esp + 0x90]
call sub.nssutil3.dll_PORT_Free_Util
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov ebp, dword [esp + 0x7c]
push dword [esp + 0x84]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
call fcn.0040bc50
add esp, 0x10
test ebp, ebp
je 0x4104fe
push ebp
call sub.nssutil3.dll_PORT_Free_Util
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov edi, dword [esi + 4]
xor ebp, ebp
mov eax, dword [esi]
mov ebx, dword [esi + 8]
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], ebp
test edi, edi
je 0x4103b9
cmp ebx, 2
jb 0x4103b9
mov al, byte [edi + 1]
test al, al
jns 0x410421
movzx eax, al
and eax, 0x7f
add eax, 2
jmp 0x410426
mov eax, 2
cmp ebx, eax
jb 0x4103b9
sub ebx, eax
add edi, eax
test bl, 3
jne 0x4103b9
shr ebx, 2
push ebx
mov dword [esp + 0x14], ebx
call sub.nssutil3.dll_PORT_Alloc_Util
mov ebp, eax
add esp, 4
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x48], ebp
test ebp, ebp
je 0x4103b9
mov dword [esp + 0x4c], ebx
test ebx, ebx
je 0x4104a8
lea ecx, [edi + 2]
mov edi, ebx
movzx ebx, byte [ecx - 2]
movzx eax, byte [ecx - 1]
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx]
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 1]
shl ebx, 8
add ecx, 4
or ebx, eax
mov dword [esp + 0x10], ecx
movzx eax, bl
push eax
call fcn.00415f91
add esp, 4
test eax, eax
je 0x4103b5
mov ecx, dword [esp + 0x10]
dec edi
mov byte [ebp], bl
inc ebp
test edi, edi
jg 0x410462
push 1
push dword [esp + 0x88]
lea eax, [esp + 0x4c]
push dword [esp + 0x88]
push eax
push dword [esp + 0x88]
call fcn.0040f9e0
push dword [esp + 0x90]
call sub.nssutil3.dll_PORT_Free_Util
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push dword [esp + 0x84]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
call fcn.0040bc50
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret