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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x460
mov esi, dword [ebp + 8]
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0x458], eax
mov eax, dword [esi + 0x3dc]
test eax, eax
je 0x10109c9e
xor ebx, ebx
jmp 0x10109cb1
cmp dword [esi + 0x3d8], 0
je 0x10109c9a
cmp dword [esi + 0x3d4], 0
setne bl
cmp dword [esi + 0x538], 0
je 0x10109cc3
push 0
push 0xffffe001
jmp 0x10109cec
cmp dword [esi + 0x534], 0
je 0x10109d0f
test eax, eax
setne cl
or cl, bl
jne 0x10109cdb
cmp dword [esi + 0x38], 0
je 0x10109d0f
mov dword [esi + 0x538], fcn.10109c70
push 0
push 0xffffe892
call sym.nss3.dll_PR_SetError
add esp, 8
xor ebx, ebx
dec ebx
mov ecx, dword [esp + 0x458]
xor ecx, ebp
call fcn.1014dc80
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test byte [esi + 0x1d], 4
jne 0x10109d29
push dword [esi + 0x168]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
mov eax, dword [esi + 0x3dc]
test eax, eax
mov dword [esp + 0x10], ebx
je 0x10109d7e
mov dword [esi + 0x3dc], 0
movzx eax, word [esi + 0x58]
cmp eax, 0x304
jb 0x10109d8b
mov eax, dword [esi + 0x97c]
add eax, 4
push eax
push 0xb
push esi
call fcn.100fd170
add esp, 0xc
mov ebx, eax
test eax, eax
jne 0x1010a570
push 1
push dword [esi + 0x97c]
push dword [esi + 0x978]
push esi
call fcn.10111d70
add esp, 0x10
jmp 0x10109d98
test bl, bl
je 0x10109dbb
mov ecx, esi
call fcn.10109640
jmp 0x10109db1
push 3
push 0xb
push esi
call fcn.100fd170
add esp, 0xc
mov ebx, eax
test eax, eax
jne 0x1010a570
xor eax, eax
push 3
push eax
push eax
push esi
call fcn.10111cf0
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x1010a570
mov edi, dword [esi + 0x7c]
test edi, edi
je 0x10109dcb
mov dword [esi + 0x7c], 0
jmp 0x10109de2
mov ecx, 0xd4
add ecx, dword [esi + 0x78]
call fcn.10094ac0
mov edi, eax
test eax, eax
je 0x10109fa9
mov eax, dword [esi + 0x48c]
mov eax, dword [eax + 4]
mov dword [esi + 0x8c], eax
push edi
call fcn.10095190
add esp, 4
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x48c]
mov eax, dword [eax + 4]
cmp eax, 4
je 0x10109eee
cmp eax, 2
je 0x10109eff
cmp eax, 1
jne 0x10109f92
mov dword [esp + 4], edi
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
test byte [esi + 0x1d], 4
jne 0x10109e4a
push dword [esi + 0x174]
call fcn.100dab60
add esp, 4
movzx eax, word [esi + 0x58]
mov word [esp + 0xc], ax
mov eax, dword [esi + 0x3bc]
mov ecx, dword [esi + 0x11c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
lea edi, [esp + 0x438]
mov dword [edi], 0x370
mov dword [edi + 4], 1
mov eax, dword [eax*8 + 0x101b0054]
mov dword [edi + 8], eax
mov dword [esp + 8], ecx
push ecx
push 3
push ebx
push ebx
push edi
call fcn.100d5860
add esp, 0x14
mov ebx, eax
test eax, eax
jne 0x10109eb8
xor eax, eax
push dword [esp + 8]
push 2
push eax
push eax
push edi
call fcn.100d5860
add esp, 0x14
mov ebx, eax
test eax, eax
je 0x1010a1b1
mov edx, dword [esp + 8]
cmp dword [esi + 0x9f8], 1
movzx eax, word [esi + 0x5a]
jne 0x10109fd2
add eax, 0xfffffcfe
cmp ax, 2
mov edi, dword [esp + 4]
ja 0x10109fd8
cwde
movzx eax, word [eax + eax + 0x101b098c]
jmp 0x10109fdb
push edi
push esi
call fcn.1010a770
add esp, 8
mov ebx, eax
jmp 0x1010a309
xor eax, eax
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0x402
mov dword [esp + 0x24], 1
cmp dword [edi + 4], 4
jne 0x10109fbe
movzx eax, word [esi + 0x58]
mov word [esp + 4], ax
lea eax, [edi + 0x20]
lea ecx, [edi + 0x14]
lea edx, [esp + 0x30]
lea ebx, [esp + 0x2c]
push edx
push ebx
push eax
push ecx
push esi
call fcn.1011a5d0
add esp, 0x14
test eax, eax
je 0x1010a033
lea eax, [esp + 0x438]
mov dword [eax], 0x10002
mov ecx, dword [edi + 0x18]
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x24]
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 0x28]
mov dword [eax + 0x18], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], 0x101b08ec
mov ecx, 0x101b08ec
jmp 0x1010a03b
push 0
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
push edi
call sym.nss3.dll_SECKEY_DestroyPublicKey
jmp 0x10109fb3
push 0xffffd043
call fcn.10111ec0
add esp, 4
xor ebx, ebx
dec ebx
jmp 0x1010a570
push 0
push 0xffffe00e
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x1010a306
mov edi, dword [esp + 4]
jmp 0x10109fdb
xor eax, eax
dec eax
rol ax, 8
lea ecx, [esp + 0x30]
mov word [ecx], ax
lea eax, [esp + 0x34]
mov dword [eax + 4], ecx
mov dword [eax + 8], 2
push edx
push 0
push eax
push 0x370
push ebx
call sym.nss3.dll_PK11_KeyGen
add esp, 0x14
lock dec dword [ebx + 0x48]
jne 0x1010a019
push ebx
mov ebx, eax
call fcn.100d1c70
mov eax, ebx
add esp, 4
test eax, eax
jne 0x1010a1c6
push 0xffffd045
call fcn.10111ec0
add esp, 4
jmp 0x1010a1c4
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [esi + 0x94], ecx
lea edx, [esp + 0x28]
push edx
push eax
push ecx
call fcn.10101b80
add esp, 0xc
test eax, eax
je 0x1010a06a
push 0xffffe064
call fcn.10111ec0
add esp, 4
mov ebx, dword [esp + 0x28]
jmp 0x1010a1a4
movzx ecx, word [esp + 4]
xor eax, eax
cmp ecx, 0x300
seta al
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], ecx
lea eax, [eax*4 + 0x373]
sub esp, 0x28
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ecx
movaps xmm0, xmmword [0x101b0020]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], edi
mov dword [esp], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x10c
call fcn.100cf710
add esp, 0x28
test eax, eax
je 0x1010a2e3
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
add eax, 2
push eax
push 0x10
push esi
call fcn.100fd170
add esp, 0xc
test eax, eax
jne 0x1010a190
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x34]
lea eax, [esp + 0x18]
push 2
push 0
push edi
push eax
call fcn.101114b0
add esp, 0x10
test eax, eax
jne 0x1010a190
mov eax, edi
sub eax, ebx
je 0x1010a139
sub ebx, edi
xor edi, edi
push 1
push edi
push edi
lea eax, [esp + 0x24]
push eax
call fcn.101114b0
add esp, 0x10
test eax, eax
jne 0x1010a190
inc ebx
jne 0x1010a121
mov eax, dword [esp + 8]
push dword [eax + 0x34]
push dword [eax + 0x30]
lea eax, [esp + 0x20]
push eax
call fcn.10111410
add esp, 0xc
test eax, eax
jne 0x1010a190
mov edx, dword [esp + 0x18]
mov ecx, esi
push 0
push dword [esp + 0x20]
call fcn.10111b50
add esp, 8
test eax, eax
jne 0x1010a190
push 1
push dword [esp + 0x10]
push esi
call fcn.100fb4e0
add esp, 0xc
test eax, eax
je 0x1010a683
push 0xffffd045
call fcn.10111ec0
add esp, 4
push dword [esp + 0xc]
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x1010a2f0
jmp 0x1010a2f9
push 0
push 0xffffd054
call sym.nss3.dll_PR_SetError
add esp, 8
mov edi, dword [esp + 4]
xor eax, eax
test byte [esi + 0x1d], 4
jne 0x1010a1de
push dword [esi + 0x174]
mov ebx, eax
call fcn.100dac50
mov eax, ebx
add esp, 4
test eax, eax
je 0x1010a21c
mov dword [esp + 8], eax
push edi
call fcn.10095190
add esp, 4
lea ecx, [eax + 7]
shr ecx, 3
mov dword [esp + 0x20], ecx
cmp eax, 0x2001
jb 0x1010a260
push 0x2f
push 2
push esi
call fcn.100fa900
add esp, 0xc
push 0xffffd045
call fcn.10111ec0
add esp, 4
jmp 0x1010a231
push 0xffffd045
call fcn.10111ec0
add esp, 4
mov dword [esp + 8], 0
xor ebx, ebx
dec ebx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1010a246
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esp + 8]
test eax, eax
je 0x1010a309
push eax
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
jmp 0x1010a309
push ecx
call sym.nss3.dll_PORT_Alloc_Util
add esp, 4
mov dword [esp + 0x1c], eax
xor ebx, ebx
dec ebx
test eax, eax
je 0x1010a234
xor eax, eax
cmp dword [edi + 4], 1
sete al
lea eax, [eax + eax - 1]
lea ecx, [esp + 0x18]
push ecx
push dword [esp + 0xc]
push 0
push eax
push edi
call fcn.100ce8c0
add esp, 0x14
test eax, eax
je 0x1010a2ab
push 0xffffd045
mov ebx, eax
call fcn.10111ec0
add esp, 4
jmp 0x1010a234
movzx ecx, word [esp + 0xc]
mov edi, dword [esp + 0x20]
lea eax, [edi + 2]
mov dword [esp + 0xc], ecx
cmp ecx, 0x300
cmovbe eax, edi
push eax
push 0x10
push esi
call fcn.100fd170
add esp, 0xc
test eax, eax
je 0x1010a5cd
mov ebx, eax
mov edi, dword [esp + 4]
jmp 0x1010a234
push 0xffffd045
call fcn.10111ec0
add esp, 4
push ebx
call fcn.1011c390
add esp, 4
lea eax, [esp + 0x18]
push eax
call fcn.10111940
add esp, 4
xor ebx, ebx
dec ebx
push edi
call sym.nss3.dll_SECKEY_DestroyPublicKey
add esp, 4
test ebx, ebx
jne 0x1010a570
cmp byte [esp + 0x10], 0
je 0x1010a531
mov edi, dword [esi + 0x3d4]
xor eax, eax
mov dword [esp + 0x43c], eax
mov dword [esp + 0x438], eax
mov dword [esp + 0x440], eax
test byte [esi + 0x1d], 4
jne 0x1010a356
push dword [esi + 0x174]
call fcn.100da9f0
add esp, 4
cmp dword [esi + 0x454], 3
jne 0x1010a384
push dword [esi + 0x488]
call fcn.100fd410
add esp, 4
mov ecx, dword [esi + 0x494]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
mov edx, 4
cmovne edx, ecx
cmp eax, edx
jne 0x1010a3f6
mov edx, dword [esi + 0x3bc]
lea eax, [esp + 0x34]
mov ecx, esi
push 0
push eax
call fcn.100fda10
add esp, 8
mov ebx, eax
test byte [esi + 0x1d], 4
jne 0x1010a3b1
push dword [esi + 0x174]
call fcn.100daad0
add esp, 4
test ebx, ebx
jne 0x1010a500
movzx ecx, word [esi + 0x58]
xor eax, eax
mov dword [esp + 0x10], ecx
cmp ecx, 0x300
seta al
mov ebx, dword [esi + 0x488]
lea ecx, [esp + 0x438]
lea edx, [esp + 0x34]
push ecx
push eax
push ebx
push edi
push edx
call fcn.100faa80
add esp, 0x14
test eax, eax
je 0x1010a428
xor ebx, ebx
dec ebx
jmp 0x1010a500
mov ecx, dword [esi + 0x458]
mov edx, dword [esi + 0x45c]
lea ebx, [esp + 0x34]
push ebx
push eax
call fcn.100fdf70
add esp, 8
test eax, eax
je 0x1010a445
mov ebx, eax
push 0xffffd07f
call fcn.10111ec0
add esp, 4
jmp 0x1010a39d
cmp dword [esi + 0x60], 0
je 0x1010a44c
mov dword [esi + 0x88], ebx
push ebx
call fcn.100fad70
add esp, 4
mov dword [esi + 0x80], eax
jmp 0x1010a492
xor ebx, ebx
jmp 0x1010a39d
mov ecx, dword [esi + 0xc4]
mov eax, dword [edi + 8]
lock inc dword [eax + 0x48]
movzx edx, word [eax + 0x80]
mov word [ecx + 0xe8], dx
mov edx, dword [eax + 0x40]
mov dword [ecx + 0xe4], edx
mov edx, dword [eax + 4]
mov edx, dword [edx + 0x38]
mov dword [ecx + 0xe0], edx
mov byte [ecx + 0xeb], 1
lock dec dword [eax + 0x48]
jne 0x1010a492
push eax
call fcn.100d1c70
add esp, 4
movzx edi, word [esp + 0x10]
xor eax, eax
cmp edi, 0x303
sete al
mov ecx, dword [esp + 0x440]
lea eax, [ecx + eax*2 + 2]
push eax
push 0xf
push esi
call fcn.100fd170
add esp, 0xc
mov ebx, eax
test eax, eax
jne 0x1010a500
cmp edi, 0x303
jne 0x1010a4e5
mov eax, dword [esi + 0x488]
mov ecx, eax
sar ecx, 0x1f
push 2
push ecx
push eax
push esi
call fcn.10111cf0
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x1010a500
push 2
push dword [esp + 0x444]
push dword [esp + 0x444]
push esi
call fcn.10111d70
add esp, 0x10
mov ebx, eax
mov eax, dword [esp + 0x43c]
test eax, eax
je 0x1010a515
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
push dword [esi + 0x3d4]
call sym.nss3.dll_SECKEY_DestroyPrivateKey
add esp, 4
mov dword [esi + 0x3d4], 0
test ebx, ebx
jne 0x1010a570
mov ecx, esi
call fcn.101098c0
mov ebx, eax
test eax, eax
jne 0x1010a570
mov dword [esi + 0x3c], 1
cmp dword [esi + 0x38], 0
jne 0x1010a561
mov eax, dword [esi + 0x1c]
bt eax, 0x10
jae 0x1010a561
cmp dword [esi + 0x534], 0
je 0x1010a5ea
mov ecx, esi
xor edx, edx
call fcn.101099c0
mov ebx, eax
test eax, eax
je 0x1010a58d
test byte [esi + 0x1d], 4
jne 0x10109cf7
push dword [esi + 0x168]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
jmp 0x10109cf7
test byte [esi + 0x1d], 4
jne 0x1010a5a1
push dword [esi + 0x168]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
push 0x23
push esi
call fcn.1010ba70
add esp, 8
test eax, eax
je 0x1010a5bc
mov dword [esi + 0x450], 0xe
jmp 0x1010a5c6
mov dword [esi + 0x450], 6
xor ebx, ebx
jmp 0x10109cf7
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0xc], 0x301
jb 0x1010a628
push 2
push edi
push edx
push esi
call fcn.10111d70
add esp, 0x10
jmp 0x1010a635
bt eax, 0xa
jb 0x1010a5fe
push dword [esi + 0x168]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
mov ecx, esi
call fcn.10102890
mov ebx, eax
test byte [esi + 0x1d], 4
jne 0x1010a61b
push dword [esi + 0x168]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
test ebx, ebx
jne 0x1010a570
jmp 0x1010a561
mov ecx, esi
push 0
push edi
call fcn.10111b50
add esp, 8
mov edi, dword [esp + 4]
test eax, eax
je 0x1010a644
mov ebx, eax
jmp 0x1010a234
push 1
push dword [esp + 0xc]
push esi
call fcn.100fb4e0
add esp, 0xc
mov dword [esp + 4], eax
push dword [esp + 8]
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
mov dword [esp + 8], 0
cmp dword [esp + 4], 0
je 0x1010a67c
push 0xffffd045
jmp 0x1010a2a1
xor ebx, ebx
jmp 0x1010a234
lea eax, [esp + 0x18]
push eax
call fcn.10111940
add esp, 4
push dword [esp + 0xc]
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
push dword [esp + 0x14]
call fcn.1011c390
add esp, 4
xor ebx, ebx
mov edi, dword [esp + 4]
jmp 0x1010a309