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

Disassembly:
push 0xffffffffffffffff
push 0x1015428b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
mov ebp, dword [esp + 0x60]
push esi
push edi
xor edi, edi
mov eax, dword [ebp + 4]
mov edx, ecx
cmp eax, edi
mov dword [esp + 0x28], edx
mov bl, 0xc3
mov byte [esp + 0x1f], 0x93
jne 0x1000475a
xor ecx, ecx
jmp 0x10004762
mov ecx, dword [ebp + 8]
sub ecx, eax
sar ecx, 2
cmp ecx, dword [esp + 0x70]
jae 0x10004d4d
mov esi, dword [esp + 0x64]
cmp esi, edi
jne 0x10004794
mov esi, dword [edx + 0x10]
mov eax, 0xe6
cdq
idiv dword [0x1018c248]
mov eax, dword [0x1018c244]
mov cl, 0x5b
mov al, byte [edx + eax]
imul cl
mov byte [0x1018c272], al
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], 1
lea eax, [esp + 0x64]
mov dword [esp + 0x64], edi
mov edx, dword [esi]
push eax
push esi
call dword [edx + 0x20]
mov esi, eax
test esi, 0x80000000
je 0x100047be
jmp 0x10004d92
mov eax, 0x393
mov ecx, dword [0x1018c244]
cdq
idiv dword [0x1018c248]
mov al, byte [0x1018c271]
mov dl, byte [edx + ecx]
mov cl, byte [0x1018c26e]
sub dl, cl
mov dword [esp + 0x20], edi
sub dl, al
mov al, byte [0x1018c26c]
sub dl, al
add dl, 0x78
inc al
mov byte [0x1018c26c], al
mov eax, dword [esp + 0x64]
mov byte [0x1018c271], dl
lea edx, [esp + 0x20]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
mov esi, eax
test esi, 0x80000000
je 0x1000481b
jmp 0x10004d92
mov al, byte [0x1018c271]
mov byte [0x1018c26f], 0x31
mov byte [0x1018c270], al
dec al
mov byte [0x1018c271], al
mov eax, dword [esp + 0x20]
cmp eax, edi
mov dword [esp + 0x18], edi
jbe 0x10004b12
mov ecx, dword [ebp + 4]
cmp ecx, edi
jne 0x1000484e
xor eax, eax
jmp 0x10004856
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp eax, dword [esp + 0x70]
jae 0x10004b1f
mov dword [esp + 0x14], edi
mov al, byte [esp + 0x1f]
lea edx, [esp + 0x14]
dec al
push edx
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x68]
mov byte [esp + 0x60], 6
mov dword [esp + 0x18], edi
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, 0x80000000
jne 0x10004b24
mov byte [0x1018c270], 0xa5
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
push 0x1016a2b8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x64], 9
call fcn.10020793
mov eax, 0x1ab
mov ecx, dword [0x1018c244]
cdq
idiv dword [0x1018c248]
mov byte [esp + 0x5c], 0xa
mov al, byte [edx + ecx]
mov dl, 0xf7
imul dl
mov bl, al
mov eax, dword [esp + 0x10]
cmp eax, edi
jne 0x10004905
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 6
call fcn.10020761
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
jmp 0x10004afd
lea eax, [esp + 0x44]
mov byte [esp + 0x5c], 0xe
push eax
call dword [sym.imp.xpcom.dll_NS_StringContainerInit]
add esp, 4
mov eax, 0x258
mov ecx, dword [0x1018c244]
cdq
idiv dword [0x1018c248]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x5c], 0xf
mov bl, byte [edx + ecx]
mov edx, dword [eax]
lea ecx, [esp + 0x44]
push ecx
push eax
call dword [edx + 0x70]
mov esi, eax
test esi, 0x80000000
jne 0x10004b37
lea ecx, [esp + 0x44]
call fcn.10001590
mov dl, byte [esp + 0x68]
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x3c], esp
push edi
mov ecx, esi
mov ebp, eax
mov byte [esi], dl
call fcn.1000bc70
push ebp
call fcn.1013c2c2
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.1000c010
test al, al
je 0x100049a0
mov eax, dword [esi + 4]
push edi
push ebp
push eax
call fcn.100017d0
add esp, 0xc
mov ecx, esi
push edi
call fcn.1000bff0
lea eax, [esp + 0x44]
mov byte [esp + 0x6c], 0xf
push eax
call fcn.10023160
add esp, 0x14
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0x5c], 0x16
mov byte [0x1018c26d], 0x93
mov eax, dword [ecx + 4]
test eax, eax
je 0x10004a48
mov esi, dword [ecx + 8]
mov ecx, esi
sub ecx, eax
test ecx, 0xfffffff0
je 0x10004a48
lea edx, [esp + 0x34]
push 0
push edx
push esi
push eax
call fcn.1000d360
add esp, 0x10
cmp eax, esi
je 0x10004a12
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x100049fc
mov eax, 0x1016a1d8
push ecx
push eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x3c]
push eax
push 0
call fcn.1000d2b0
test eax, eax
jge 0x10004a48
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x60], 0xf
call fcn.1000bc70
lea ecx, [esp + 0x44]
mov byte [esp + 0x5c], 0x17
push ecx
call dword [sym.imp.xpcom.dll_NS_StringContainerFinish]
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 6
call fcn.10020761
jmp 0x10004ae9
push 0x14
call fcn.1013c2df
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov byte [esp + 0x5c], 0x1b
je 0x10004a75
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [ecx + 0xc]
mov ecx, eax
push edx
call fcn.100028d0
jmp 0x10004a77
xor eax, eax
mov byte [esp + 0x5c], 0x16
mov dword [esp + 0x24], eax
test eax, eax
je 0x10004a8a
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x24]
push edx
push 1
mov eax, dword [ecx + 8]
mov byte [esp + 0x64], 0x1c
push eax
call fcn.1000c410
mov eax, dword [esp + 0x24]
mov byte [esp + 0x5c], 0x16
test eax, eax
je 0x10004ab6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 1
lea ecx, [esp + 0x38]
mov bl, 0x3b
mov byte [esp + 0x60], 0xf
call fcn.1000bc70
lea edx, [esp + 0x44]
mov byte [esp + 0x5c], 0x1d
push edx
call dword [sym.imp.xpcom.dll_NS_StringContainerFinish]
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 6
call fcn.10020761
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
mov ebp, dword [esp + 0x68]
xor edi, edi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jb 0x10004843
mov cl, byte [esp + 0x74]
test cl, cl
jne 0x10004b6b
jmp 0x10004d3c
jmp 0x10004d3c
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
jmp 0x10004d92
lea eax, [esp + 0x44]
mov byte [esp + 0x5c], 0x10
push eax
call dword [sym.imp.xpcom.dll_NS_StringContainerFinish]
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 6
call fcn.10020761
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
jmp 0x10004d92
cmp eax, edi
mov dword [esp + 0x18], edi
jbe 0x10004d3c
jmp 0x10004b7b
xor edi, edi
mov cl, byte [0x1018c26f]
mov dl, 0x90
dec cl
dec bl
mov byte [0x1018c26f], cl
mov cl, byte [esp + 0x1f]
mov al, cl
push 0xffffffffffffffe4
imul dl
mov dl, byte [0x1018c26d]
dec bl
inc cl
add dl, bl
mov byte [esp + 0x23], cl
mov cl, byte [0x1018c26f]
sub dl, 0x69
push ecx
push edx
push eax
push 0xffffffffffffff81
push 0xffffffffffffff9a
push 0x42
push edi
push 0xa
call fcn.100012a0
mov cl, byte [esp + 0x43]
sub cl, 0x18
add al, cl
push eax
mov eax, 0x1cb
cdq
idiv dword [0x1018c248]
mov eax, dword [0x1018c244]
push 0x33
mov cl, byte [edx + eax]
push ecx
call fcn.10002450
push 0xffffffffffffffcb
mov dl, al
push 0xffffffffffffffe3
push 0x75
mov byte [esp + 0xa4], dl
call fcn.100015f0
mov dl, 0x42
mov cl, byte [esp + 0xa4]
imul dl
add al, 0x26
add esp, 0x2c
imul bl
add cl, al
push ecx
call fcn.100012a0
mov byte [esp + 0x42], al
mov eax, dword [ebp + 4]
xor edi, edi
add esp, 0x14
cmp eax, edi
jne 0x10004c29
xor ecx, ecx
jmp 0x10004c31
mov ecx, dword [ebp + 8]
sub ecx, eax
sar ecx, 2
cmp ecx, dword [esp + 0x70]
jae 0x10004d64
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x60], 0x24
mov dword [esp + 0x18], edi
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0xc]
mov esi, eax
test esi, 0x80000000
jne 0x10004d66
mov eax, 0x2ca
cdq
idiv dword [0x1018c248]
mov eax, dword [0x1018c244]
mov cl, byte [edx + eax]
mov dword [esp + 0x10], edi
sub cl, 0x35
mov byte [0x1018c26e], cl
mov edx, dword [esp + 0x14]
push 0x1016a2b8
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x64], 0x27
call fcn.10020793
mov al, byte [esp + 0x2e]
mov byte [esp + 0x5c], 0x28
mov byte [0x1018c26c], al
mov eax, dword [esp + 0x10]
cmp eax, edi
jne 0x10004cc9
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 0x24
call fcn.10020761
jmp 0x10004d19
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push edx
push ecx
mov ecx, dword [esp + 0x34]
push ebp
push eax
call fcn.10004720
mov esi, eax
test esi, 0x80000000
jne 0x10004d76
mov eax, 0x35f
cdq
idiv dword [0x1018c248]
mov eax, dword [0x1018c244]
mov cl, byte [edx + eax]
mov byte [0x1018c270], cl
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 0x24
call fcn.10020761
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x10004b79
lea ecx, [esp + 0x64]
mov dword [esp + 0x5c], 0xffffffff
call fcn.10020761
xor eax, eax
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x50
ret 0x14
jmp 0x10004d3c
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
jmp 0x10004d92
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c], 0x24
call fcn.10020761
lea ecx, [esp + 0x14]
mov byte [esp + 0x5c], 1
call fcn.10020761
lea ecx, [esp + 0x64]
mov dword [esp + 0x5c], 0xffffffff
call fcn.10020761
mov eax, esi
jmp 0x10004d4f